diff --git a/config/us/pilotwings64.us.yaml b/config/us/pilotwings64.us.yaml index 0f7ca59..f1e1499 100644 --- a/config/us/pilotwings64.us.yaml +++ b/config/us/pilotwings64.us.yaml @@ -453,76 +453,69 @@ segments: - [0xD4290, c, app/code_D4290] - [0xD55B0, c, app/wind_objects] - - [0xD5C40, data] - - [0xD5CD0, data] - - [0xD5D40, data] - - [0xD5D50, data] - - [0xD5F10, data] - - [0xD5F20, data] - - [0xD5F40, data] - - [0xD5F60, data] - - [0xD5F70, data] - - [0xD6030, data] - - [0xD62D0, data] - - [0xD62F0, data] - - [0xD6360, data] - - [0xD6410, data] - - [0xD6450, data] - - [0xD64D0, data] - - [0xD64E0, data] - - [0xD6510, data] - - [0xD6540, data] - - [0xD65F0, data] + - [0xD5C40, data] # app/code_51E30 + - [0xD5D40, .data, app/code_52230] + - [0xD5D50, .data, app/code_560D0] + - [0xD5F10, .data, app/code_5A6A0] + - [0xD5F20, .data, app/cannonball] + - [0xD5F40, .data, app/code_60020] + - [0xD5F70, .data, app/code_61A60] + - [0xD6030, .data, app/code_64070] + - [0xD62D0, .data, app/code_64730] + - [0xD6410, .data, app/code_68220] + - [0xD6450, data] # app/code_69BF0 + - [0xD64D0, .data, app/code_6ACE0] + - [0xD6540, data] # also part of app/code_6ACE0 + - [0xD65F0, .data, app/code_6ECD0] - [0xD6610, .data, app/file_menu] - - [0xD6650, data] - - [0xD6660, data] - - [0xD6680, data] - - [0xD6690, data] - - [0xD66E0, data] - - [0xD66F0, data] - - [0xD6800, data] - - [0xD68B0, data] - - [0xD68C0, data] - - [0xD68D0, data] - - [0xD68E0, data] - - [0xD6910, data] - - [0xD6920, data] - - [0xD6930, data] - - [0xD6980, data] - - [0xD6CD0, data] - - [0xD6D20, data] - - [0xD6D80, data] - - [0xD6D90, data] - - [0xD6DC0, data] - - [0xD6DE0, data] - - [0xD6E00, data] - - [0xD6E30, data] - - [0xD6E40, data] - - [0xD6EA0, data] - - [0xD6EB0, data] - - [0xD7000, data] - - [0xD7010, data] - - [0xD70D0, data] - - [0xD70E0, data] - - [0xD7100, data] - - [0xD7140, data] - - [0xD73B0, data] - - [0xD7500, data] - - [0xD7980, data] - - [0xD7990, data] - - [0xD79C0, data] - - [0xD79E0, data] - - [0xD7A30, data] - - [0xD7A40, data] - - [0xD7A90, data] - - [0xD7AE0, data] - - [0xD7AF0, data] - - [0xD7B80, data] - - [0xD7BC0, data] + - [0xD6650, .data, app/code_71500] + - [0xD6660, .data, app/code_722D0] + - [0xD6680, .data, app/code_72910] + - [0xD6690, .data, app/code_72B70] + - [0xD66E0, .data, app/code_75A60] + - [0xD66F0, .data, app/code_796C0] + - [0xD68A0, .data, app/code_7C4C0] + - [0xD68B0, .data, app/code_7CF30] + - [0xD68C0, .data, app/code_7FED0] + - [0xD68D0, .data, app/code_82520] + - [0xD68E0, .data, app/code_82B90] + - [0xD6910, .data, app/code_8A760] + - [0xD6920, .data, app/code_905C0] + - [0xD6930, .data, app/level] + - [0xD6950, .data, app/credits] + - [0xD6CD0, .data, app/code_94E60] + - [0xD6D20, .data, app/map3d] + - [0xD6D70, .data, app/mem] + - [0xD6D80, .data, app/code_9A960] + - [0xD6D90, .data, app/code_9C080] + - [0xD6DE0, .data, app/code_9CF50] + - [0xD6E00, .data, app/code_9D3C0] + - [0xD6E30, .data, app/pads] + - [0xD6E40, .data, app/hud] + - [0xD6EA0, .data, app/demo_attitude] + - [0xD6EB0, data] # app/code_A8C30 + - [0xD7000, .data, app/demo] + - [0xD7010, data] # app/rings + - [0xD70D0, .data, app/code_AE460] + - [0xD70E0, .data, app/code_AF950] + - [0xD7100, .data, app/code_B2900] + - [0xD7140, .data, app/code_B3A70] + - [0xD7170, .data, app/code_B5280] + - [0xD7500, data] # app/code_B6FE0 + - [0xD7990, data] # app/code_BB820 + - [0xD7A30, .data, app/code_BD670] + - [0xD7A40, .data, app/snap] + - [0xD7AE0, .data, app/snd] + - [0xD7B40, .data, app/snow] + - [0xD7B80, .data, app/spath] + - [0xD7BC0, .data, app/code_C9B60] + - [0xD7BD0, .data, app/code_CB7C0] + - [0xD7CC0, .data, app/level_objects] - [0xD7D20, .data, app/thermals] - [0xD7D30, data] - - [0xD7E10, data] - - [0xD7EF0, data] + - [0xD7E10, data] # app/code_CE4F0 + - [0xD7EF0, .data, app/code_D2D50] + - [0xD7F20, .data, app/code_D3810] - [0xD7F40, .rodata, app/code_51E30] - [0xD7F60, .rodata, app/code_52230] - [0xD8340, .rodata, app/code_556C0] diff --git a/config/us/sym/symbol_addrs_app.txt b/config/us/sym/symbol_addrs_app.txt index 0a1032f..f95a7be 100644 --- a/config/us/sym/symbol_addrs_app.txt +++ b/config/us/sym/symbol_addrs_app.txt @@ -294,3 +294,8 @@ D_80355034 = 0x80355034; // type:f32 force_migration:True D_80355038 = 0x80355038; // type:f32 force_migration:True D_8035503C = 0x8035503C; // type:f32 force_migration:True D_80355040 = 0x80355040; // type:f32 force_migration:True + +D_8035AF30 = 0x8035AF30; // type:f32 +D_8035AF34 = 0x8035AF34; // type:f32 +D_8035AF38 = 0x8035AF38; // type:f32 +D_8035AF3C = 0x8035AF3C; // type:f32 \ No newline at end of file diff --git a/src/app/cannonball.c b/src/app/cannonball.c index ccd81dc..1cdba4b 100644 --- a/src/app/cannonball.c +++ b/src/app/cannonball.c @@ -30,11 +30,12 @@ #include "save.h" #include "snd.h" -// .data likely owned by this file -extern f32 D_8034E9F0; -extern u8 D_8034E9F4; -extern s32 D_8034E9F8; -extern f32 D_8034EA00; +// .data +f32 D_8034E9F0 = 0.0f; +u8 D_8034E9F4 = 0; +s32 D_8034E9F8 = 0; +f32 D_8034E9FC = 0.0f; // used in cannonPilotLand +f32 D_8034EA00 = 0.0f; // .bss likely owned by this file extern Unk803599D0 D_80359A30; diff --git a/src/app/code_52230.c b/src/app/code_52230.c index be4643c..8a043ed 100644 --- a/src/app/code_52230.c +++ b/src/app/code_52230.c @@ -1,6 +1,10 @@ #include "common.h" #include "code_52230.h" +// .data +// list of model ids +s32 D_8034E810[] = { 0xF4, 0xF5, 0xF6 }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_52230/func_802CAD00.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_52230/func_802CADE8.s") diff --git a/src/app/code_560D0.c b/src/app/code_560D0.c index 2d80c94..eeefe31 100644 --- a/src/app/code_560D0.c +++ b/src/app/code_560D0.c @@ -1,5 +1,20 @@ #include "common.h" +f32 D_8034E820 = 0.175f; + +f32 D_8034E824[] = { -1.570797f, 0.0f, -0.26179948f, 0.005f, -0.2094396f, 0.01f, -0.1570797f, 0.02f, -0.0872665f, 0.05f, 0.0f, 0.1f, + 0.0523599f, 0.15f, 0.0698132f, 0.2f, 0.07679452f, 0.5f, 0.08028518f, 0.85f, 0.08552117f, 1.05f, 0.090757154f, 1.0f, + 0.1047198f, 0.85f, 0.1221731f, 1.05f, 0.1396264f, 1.43f, 0.1570797f, 1.65f, 0.174533f, 1.85f, 0.1919863f, 1.85f, + 0.2094396f, 1.15f, 0.26179948f, 0.8f, 0.31415939f, 0.5f, 0.52359897f, 0.5f, 1.570797f, 0.5f, 0.0f, 0.0f, + 0.5f, 0.1f, 5.0f, 0.25f, 10.0f, 0.8f, 20.0f, 1.0f, 30.0f, 0.9f, 35.0f, 0.75f, + 40.0f, 0.54f, 50.0f, 0.35f, 60.0f, 0.22f, 100.0f, 0.0f }; + +f32 D_8034E934[] = { 0.0f, 0.0f, 0.3f, 0.0f, 1.7f, 0.0f, 3.0f, 0.0f, 7.0f, 0.6f, 13.0f, -1.3f, 15.0f, -2.0f, 18.0f, -2.2f, 20.0f, -2.5f, 21.0f, -1.8f, + 23.9f, -1.0f, 24.0f, 0.0f, 24.1f, 1.0f, 25.0f, 2.0f, 33.5f, 2.2f, 36.0f, 2.0f, 51.0f, 1.8f, 67.0f, 1.3f, 81.5f, 20.0f, 100.0f, 50.0f }; + +// used in func_802CEBA0 +f32 D_8034E9D4[3] = { 0.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_560D0/func_802CEBA0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_560D0/func_802CECB8.s") diff --git a/src/app/code_5A6A0.c b/src/app/code_5A6A0.c index 2265d22..e233b0a 100644 --- a/src/app/code_5A6A0.c +++ b/src/app/code_5A6A0.c @@ -19,8 +19,12 @@ typedef struct { u8 pad20[0x40 - 0x20]; } Unk802D472C_SP60; -extern f32 D_8034E9E0; -extern u8 D_8034E9E4; +// .data +f32 D_8034E9E0 = 1.0f; +u8 D_8034E9E4 = 0; +s32 pad_D_8034E9E8 = 0; + +// .bss extern Unk803599D0 D_803599D0; extern f32 D_80359A24; @@ -36,7 +40,7 @@ static void func_802D532C(Unk802D3658_Arg0* arg0); static void func_802D559C(Unk802D3658_Arg0* arg0); static s32 func_802D4CA4(Unk802D3658_Arg0*, Mtx4F*); static void func_802D58EC(Unk802D3658_Arg0*, Mtx4F*); -void func_802D4274(Unk802D3658_Arg0* arg0); +/* static */ void func_802D4274(Unk802D3658_Arg0* arg0); void func_802D3170(u8 arg0, Unk802D3658_Arg0* arg1) { f32 one; diff --git a/src/app/code_5A6A0.h b/src/app/code_5A6A0.h index f478958..6471a72 100644 --- a/src/app/code_5A6A0.h +++ b/src/app/code_5A6A0.h @@ -23,6 +23,10 @@ typedef struct { f32 unk38; f32 unk3C; f32 unk40; + s32 pad44; + s32 pad48; + s32 pad4C; + s32 pad50; } Unk803599D0; typedef struct { diff --git a/src/app/code_60020.c b/src/app/code_60020.c index 4ee4af5..3e72ac6 100644 --- a/src/app/code_60020.c +++ b/src/app/code_60020.c @@ -2,6 +2,16 @@ #include "code_60020.h" +f32 D_8034EA10 = 0.0f; +f32 D_8034EA14 = 0.0f; +f32 D_8034EA18 = 0.0f; +f32 D_8034EA1C = 0.0f; +f32 D_8034EA20 = 0.0f; +f32 D_8034EA24 = 0.0f; +s32 padD_8034EA28 = 0; +s32 padD_8034EA2C = 0; +Vec3F D_8034EA30 = { 0.0f, 0.0f, 0.0f }; // used for assignment in func_802D9430 + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_60020/func_802D8AF0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_60020/func_802D9220.s") diff --git a/src/app/code_61A60.c b/src/app/code_61A60.c index 317966e..d5bf405 100644 --- a/src/app/code_61A60.c +++ b/src/app/code_61A60.c @@ -1,5 +1,34 @@ #include "common.h" #include "code_61A60.h" +#include "code_9A960.h" + +s32 D_8034EA40 = 0; +u16 D_8034EA44 = 0xFFFF; +s32 D_8034EA48 = 0; + +// This struct should be used for Unk8034EA4C */ +typedef struct { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; +} Unk8034EA4C; +f32 D_8034EA4C[] = { + -68.08f, + -302.14f, + 10.74f, +}; + +f32 D_8034EA58 = -0.0174533f; +f32 D_8034EA5C = 0.1f; +f32 padD_8034EA60 = 0.0f; + +s32 D_8034EA64[] = { 0, 3, 1, 4, 2, 5 }; +s32 D_8034EA7C[] = { 0x35, 0x14C, 0x9C, 0x1A7, 0x85, 0x128 }; +s32 D_8034EA94[] = { 2, 2, 2, 2, 2, 2 }; +Unk803599D0 D_8034EAAC = { 8, 0.36f, 0.0f, 0.412f, 0.1f, 0.465f, 0.25f, 0.517f, 0.475f, 0.568f, 0.5f, 0.62f, 0.475f, 0.673f, 0.25f, 0.725f, 0.0f, 0, 0, 0, 0 }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_61A60/func_802DA530.s") diff --git a/src/app/code_64070.c b/src/app/code_64070.c index 6aa0331..7700826 100644 --- a/src/app/code_64070.c +++ b/src/app/code_64070.c @@ -1,5 +1,108 @@ #include "common.h" +typedef struct { + u16 unk0; + u8 unk2; + u16 unk4; +} Unk8034EBD8_Unk4; + +typedef struct { + u8 length; + Unk8034EBD8_Unk4* unk4; +} Unk8034EBD8; + +Unk8034EBD8_Unk4 D_8034EB00[] = { + { 0xDF, 0x6C, 0x4D }, + { 0xDC, 0xB2, 0x4E }, + { 0xDD, 0xC4, 0x4F }, + { 0x2E, 0xA3, 0x50 }, +}; + +Unk8034EBD8_Unk4 D_8034EB18[] = { + { 0xE3, 0x62, 0x52 }, + { 0xE3, 0x92, 0x51 }, + { 0xC1, 0xB3, 0x4E }, + { 0xC1, 0xC6, 0x53 }, + { 0x2E, 0xA3, 0x50 }, +}; + +Unk8034EBD8_Unk4 D_8034EB38[] = { + { 0xE6, 0x7E, 0x54 }, + { 0xE6, 0x68, 0x55 }, + { 0xD8, 0xA7, 0x4E }, + { 0xD8, 0xB9, 0x56 }, + { 0x2E, 0xA3, 0x50 }, +}; + +Unk8034EBD8_Unk4 D_8034EB58[] = { + { 0xFB, 0x68, 0x57 }, + { 0x26, 0xB3, 0x58 }, +}; + +Unk8034EBD8_Unk4 D_8034EB64[] = { + { 0xDF, 0x6A, 0x59 }, + { 0xDA, 0xA1, 0x5A }, + { 0x3B, 0xC8, 0x5B }, + { 0x3B, 0xB4, 0x5C }, + { 0x3B, 0x9F, 0x5D }, + { 0x1E, 0x9F, 0x5E }, + { 0x26, 0xB4, 0x5F }, + { 0x26, 0xC9, 0x60 }, +}; + +Unk8034EBD8_Unk4 D_8034EB94[] = { + { 0xDE, 0x68, 0x61 }, + { 0x3B, 0xB3, 0x62 }, + { 0x3B, 0xC6, 0x63 }, + { 0x1B, 0xB3, 0x5E }, + { 0x23, 0xC3, 0x5F }, + { 0x23, 0xD0, 0x60 }, +}; + +Unk8034EBD8_Unk4 D_8034EBB8[] = { + { 0xE4, 0x63, 0x64 }, + { 0xE4, 0x83, 0x65 }, + { 0xDC, 0xB2, 0x4E }, + { 0xDC, 0xC4, 0x4F }, + { 0x2E, 0xA3, 0x50 }, +}; + +Unk8034EBD8 D_8034EBD8[] = { + { 0x04, D_8034EB00 }, + { 0x05, D_8034EB38 }, + { 0x05, D_8034EB18 }, + { 0x02, D_8034EB58 }, + { 0x08, D_8034EB64 }, + { 0x06, D_8034EB94 }, + { 0x05, D_8034EBB8 }, +}; + +s16 D_8034EC10[] = { 0x7A, 0x35, 0x9E, 0x35, -1, 0x9D, 0x35, 0x9D, 0x64, -1, 0xBE, 0x24, 0xBE, + 0x46, -1, 0xF4, 0x48, 0xF4, 0x5D, -1, 0xF4, 0x5C, 0xC6, 0x5C, -1, -1 }; + +s16 D_8034EC44[] = { 0xD5, 0xC3, 0xB0, 0x93, -1, 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0x9F, -1, 0xDC, 0x7C, + 0xB2, 0x7C, -1, 0xB3, 0x7C, 0xB3, 0x67, -1, 0xBD, 0x7C, 0xBD, 0x70, -1, -1 }; + +s16 D_8034EC7C[] = { + 0xB2, 0x67, 0xB2, 0x99, 0xDF, 0x99, -1, 0xBC, 0x6E, 0xDF, 0x6E, -1, 0xBB, 0xCB, 0xAF, 0x98, -1, 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0x9F, -1, -1 +}; + +s16 D_8034ECB0[] = { + 0xB2, 0x67, 0xB2, 0x84, 0xE1, 0x84, -1, 0xBC, 0x6E, 0xE1, 0x6E, -1, 0xAF, 0x98, 0xD0, 0xBD, -1, 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0x9F, -1, -1 +}; + +s16 D_8034ECE4[] = { 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0xAD, -1, 0xBC, 0x6E, 0xF5, 0x6E, -1, -1 }; + +s16 D_8034ED00[] = { 0xB2, 0x67, 0xB2, 0xA7, 0xD2, 0xA7, -1, 0xBC, 0x6F, 0xDA, 0x6F, -1, 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0x99, -1, -1 }; + +s16 D_8034ED28[] = { 0x4B, 0xAB, 0x4B, 0x80, 0x9B, 0x80, -1, 0xBC, 0x6E, 0xDA, 0x6E, -1, -1 }; + +s16 D_8034ED44[] = { + 0xB2, 0x67, 0xB2, 0x89, 0xDF, 0x89, -1, 0xBC, 0x6E, 0xDF, 0x6E, -1, 0xAF, 0x98, 0xD5, 0xC3, -1, 0x9C, 0x7C, 0x4B, 0x7C, 0x4B, 0x9F, -1, -1 +}; + +s16* D_8034ED78[] = { D_8034EC44, D_8034ECB0, D_8034EC7C, D_8034ECE4, D_8034ED00, D_8034ED28, D_8034ED44, NULL, NULL, NULL }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_64070/func_802DCB40.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_64070/func_802DCBA0.s") diff --git a/src/app/code_64730.c b/src/app/code_64730.c index e534cfb..0dff8c9 100644 --- a/src/app/code_64730.c +++ b/src/app/code_64730.c @@ -1,4 +1,42 @@ #include "common.h" +#include "code_5A6A0.h" + +s8 D_8034EDA0 = 0; +s8 D_8034EDA4[] = { 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +f32 D_8034EDBC = 0.0f; + +u8 D_8034EDC0 = 0xFF; +u8 D_8034EDC4 = 0xFF; +s32 D_8034EDC8 = 0xFFFF; +s32 D_8034EDCC = 0xFFFF; +s32 D_8034EDD0 = 0; +s32 D_8034EDD4 = 0; +s32 D_8034EDD8 = 0; + +Unk803599D0 D_8034EDDC[] = { + 8, 0.36f, 0.0f, 0.412f, 0.1f, 0.465f, 0.25f, 0.517f, 0.475f, 0.568f, 0.5f, 0.62f, 0.475f, 0.673f, 0.25f, 0.725f, 0.0f, 0, 0, 0, 0 +}; + +s16 D_8034EE30[] = { 0x0110, 0x0114, 0x0116, 0x0118, 0x011A, 0x011C, 0x011E, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126, 0x0127, 0x012B, + 0x012D, 0x012F, 0x0131, 0x0133, 0x0135, 0x0136, 0x0137, 0x0138, 0x0139, 0x013A, 0x0144, 0x014A, 0x014C, 0x014D, + 0x014E, 0x014F, 0x0150, 0x0152, 0x0153, 0x0154, 0x0155, 0x0156, 0x013B, 0x013E, 0x013F, 0x0140, 0x0141, 0x0142 }; + +u8 D_8034EE84[] = { + 0x4C, 0x4D, 0x4B, 0x51, 0x50, 0x4F, 0x4E, 0x00, +}; + +f32 D_8034EE8C[] = { + -0.745f, -1.336f, -1.221f, -0.828f, -1.36f, -1.076f, -0.745f, -1.336f, -1.0f, -1.0f, -1.0f, -1.0f, +}; + +f32 D_8034EEBC[] = { + -0.745f, -1.336f, -1.221f, -0.828f, -1.36f, -1.076f, +}; + +f32 D_8034EED4 = 0.0f; +f32 D_8034EED8 = 1.6f; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_64730/func_802DD200.s") diff --git a/src/app/code_68220.c b/src/app/code_68220.c index 67e7a29..e96f5e9 100644 --- a/src/app/code_68220.c +++ b/src/app/code_68220.c @@ -1,6 +1,11 @@ #include "common.h" #include "code_68220.h" +u8 D_8034EEE0[] = { 0x63, 0x55, 0x55, 0x46, 0x52, 0x5D, 0x46, 0x52, 0x5D, 0x7B, 0x62, 0x52, 0x76, 0x5E, + 0x4A, 0x7D, 0x6A, 0x55, 0x76, 0x5E, 0x4A, 0x7B, 0x62, 0x52, 0x63, 0x55, 0x55, 0x00 }; + +f32 D_8034EEFC[] = { -180.0f, -170.0f, -12.0f, 40.0f, 65.0f, 90.0f, 105.0f, 140.0f, 180.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_68220/func_802E0CF0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_68220/func_802E1238.s") diff --git a/src/app/code_6ACE0.c b/src/app/code_6ACE0.c index 9753a8d..d05c8f9 100644 --- a/src/app/code_6ACE0.c +++ b/src/app/code_6ACE0.c @@ -7,6 +7,32 @@ typedef struct { u8 pad255[0x258 - 0x255]; } Unk8035A5F8; +typedef struct { + s32 unk0; + void* unk4; // maybe f32 pointer + s32 unk8; // always 0, maybe a pointer to something? +} Unk8034EFB0; + +// .data +f32 D_8034EFA0 = 0.0f; +s32 padD_8034EFA4[3] = { 0 }; + +extern f32 D_8035AF30; +extern f32 D_8035AF34; +extern f32 D_8035AF38; +extern f32 D_8035AF3C; + +// referenced in D_8034F03C +Unk8034EFB0 D_8034EFB0 = { 0xA, &D_8035AF30, 0 }; +Unk8034EFB0 D_8034EFBC = { 0x5, &D_8035AF34, 0 }; +Unk8034EFB0 D_8034EFC8 = { 0x6, &D_8035AF30, 0 }; +Unk8034EFB0 D_8034EFD4 = { 0x9, &D_8035AF38, 0 }; +Unk8034EFB0 D_8034EFE0 = { 0x8, &D_8035AF3C, 0 }; +Unk8034EFB0 D_8034EFEC = { 0x7, &D_8035AF3C, 0 }; +Unk8034EFB0 D_8034EFF8 = { 0x4, &D_8035AF3C, 0 }; +Unk8034EFB0 D_8034EF04 = { 0x3, &D_8035AF3C, 0 }; + +// .bss extern Unk8035A5F8 D_8035A5F8[]; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_6ACE0/func_802E37B0.s") diff --git a/src/app/code_6ECD0.c b/src/app/code_6ECD0.c index a0eb547..eb03493 100644 --- a/src/app/code_6ECD0.c +++ b/src/app/code_6ECD0.c @@ -1,6 +1,15 @@ #include "common.h" #include "code_6ECD0.h" +f32 D_8034F0C0 = 0.0f; +s32 D_8034F0C4 = 0xFFFF; +s32 D_8034F0C8 = 0xFFFFFFFF; +s32 D_8034F0CC = 0xFF; +s32 D_8034F0D0 = 0; + +// probably a Vec3F, used in as an assignment in func_802E79F0 +f32 D_8034F0D4[] = { 1150.0f, -2150.0f, 8.8f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_6ECD0/func_802E77A0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_6ECD0/func_802E77AC.s") diff --git a/src/app/code_71500.c b/src/app/code_71500.c index 165853d..54f7cd2 100644 --- a/src/app/code_71500.c +++ b/src/app/code_71500.c @@ -1,6 +1,8 @@ #include "common.h" #include "code_71500.h" +s32 D_8034F120 = 0xFFFFFFFF; + // .bss extern s32 D_80362620; extern s32 D_80362624; diff --git a/src/app/code_722D0.c b/src/app/code_722D0.c index 69dd2bf..4596225 100644 --- a/src/app/code_722D0.c +++ b/src/app/code_722D0.c @@ -1,6 +1,12 @@ #include "common.h" #include "code_722D0.h" +s32 D_8034F130 = 0xFFFF; +s32 D_8034F134 = 0xFF; +s32 D_8034F138 = 0; + +f32 D_8034F13C[] = { -288.0f, -99.0f, 5.75f, 0.0f, 0.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_722D0/func_802EADA0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_722D0/func_802EADAC.s") diff --git a/src/app/code_72910.c b/src/app/code_72910.c index 7adc4b5..4be99fe 100644 --- a/src/app/code_72910.c +++ b/src/app/code_72910.c @@ -1,5 +1,7 @@ #include "common.h" +s16 D_8034F150[8] = { 0 }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_72910/func_802EB3E0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_72910/func_802EB424.s") diff --git a/src/app/code_72B70.c b/src/app/code_72B70.c index 05f82ce..dd5a46f 100644 --- a/src/app/code_72B70.c +++ b/src/app/code_72B70.c @@ -1,6 +1,33 @@ #include "common.h" #include "code_72B70.h" +s32 D_8034F160 = 0xFFFFFFFF; +s32 D_8034F164 = 0; + +// types might be incorrect here +typedef s32 (*UnkD_8034F168)(s32); + +s32 func_802EBC94(s32); +s32 func_802EC0F4(s32); +s32 func_802EC148(s32); +s32 func_802EC338(s32); +s32 func_802EC50C(s32); +s32 func_802ED048(s32); +s32 func_802ECA2C(s32); +s32 func_802EBD2C(s32); +s32 func_802EBE10(s32); +s32 func_802EBEA8(s32); +s32 func_802EBF38(s32); +s32 func_802EBEDC(s32); +s32 func_802EBFF4(s32); +s32 func_802EC05C(s32); +s32 func_802EC0A8(s32); +s32 func_802EC0C8(s32); + +UnkD_8034F168 D_8034F168[] = { func_802EBC94, func_802EC0F4, func_802EC148, func_802EC338, func_802EC50C, func_802ED048, + func_802ECA2C, func_802EBD2C, func_802EBE10, func_802EBEA8, func_802EBF38, func_802EBEDC, + func_802EBFF4, func_802EC05C, func_802EC0A8, func_802EC0C8, NULL, NULL }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_72B70/func_802EB640.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_72B70/func_802EB9C0.s") diff --git a/src/app/code_75A60.c b/src/app/code_75A60.c index 73a18c6..84dcb67 100644 --- a/src/app/code_75A60.c +++ b/src/app/code_75A60.c @@ -1,5 +1,8 @@ #include "common.h" +f32 D_8034F1B0 = 0.0f; +f32 D_8034F1B4 = 1.0f; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_75A60/func_802EE530.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_75A60/func_802EE640.s") diff --git a/src/app/code_796C0.c b/src/app/code_796C0.c index e9ab688..1733ed7 100644 --- a/src/app/code_796C0.c +++ b/src/app/code_796C0.c @@ -1,5 +1,22 @@ #include "common.h" +f32 D_8034F1C0 = 10000.0f; +s32 D_8034F1C4 = 0; + +f32 D_8034F1C8[] = { + -1.570797f, 0.0f, -0.26179948f, 0.005f, -0.209439605f, 0.01f, -0.1570796966f, 0.02f, -0.0872664973f, 0.03f, 0.0f, 0.1f, + 0.05235990136f, 0.4f, 0.06981319934f, 0.4f, 0.07679452002f, 0.5f, 0.08028517663f, 0.85f, 0.08552116900f, 1.05f, 0.09075715392f, 1.0f, + 0.10471980273f, 0.85f, 0.12217310070f, 1.05f, 0.13962639868f, 1.43f, 0.15707969665f, 1.65f, 0.17453299462f, 1.85f, 0.19198629260f, 1.85f, + 0.20943960547f, 1.15f, 0.26179948449f, 0.8f, 0.31415939331f, 0.5f, 0.52359896898f, 0.5f, 1.57079696655f, 0.5f, 0.0f, 0.0f, + 0.5f, 1.0f, 5.0f, 1.0f, 20.0f, 1.0f, 30.0f, 0.9f, 35.0f, 0.75f, 40.0f, 0.54f, + 50.0f, 0.35f, 60.0f, 0.12f, 100.0f, 0.0f, +}; + +f32 D_8034F2D0[] = { + 0.0f, 0.0f, 0.3f, 0.6f, 1.7f, 0.6f, 3.0f, 0.6f, 7.0f, 0.6f, 13.0f, -1.3f, 15.0f, -2.0f, 18.0f, -2.2f, 20.0f, -2.5f, 21.0f, -1.8f, + 23.9f, -1.0f, 24.0f, 0.0f, 24.1f, 1.0f, 25.0f, 1.8f, 33.5f, 2.5f, 36.0f, 0.5f, 51.0f, 0.5f, 61.0f, 0.5f, 61.5f, 20.0f, 100.0f, 50.0f, +}; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_796C0/func_802F2190.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_796C0/func_802F2370.s") diff --git a/src/app/code_7C4C0.c b/src/app/code_7C4C0.c index 32bd734..2ef043c 100644 --- a/src/app/code_7C4C0.c +++ b/src/app/code_7C4C0.c @@ -1,5 +1,8 @@ #include "common.h" +f32 D_8034F370 = 0.0f; +f32 D_8034F374 = 0.5f; + void func_802F4F90(void) { } diff --git a/src/app/code_7CF30.c b/src/app/code_7CF30.c index 06fc850..3b567f5 100644 --- a/src/app/code_7CF30.c +++ b/src/app/code_7CF30.c @@ -1,4 +1,8 @@ #include "common.h" +#include "code_7FED0.h" + +s32 D_8034F380 = 0; +s32 D_8034F384 = 0; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_7CF30/func_802F5A00.s") diff --git a/src/app/code_7FED0.c b/src/app/code_7FED0.c index bb59ee3..9c85584 100644 --- a/src/app/code_7FED0.c +++ b/src/app/code_7FED0.c @@ -1,7 +1,8 @@ #include "common.h" - #include "code_7FED0.h" +s32 D_8034F390 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_7FED0/func_802F89A0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_7FED0/func_802F8AB8.s") diff --git a/src/app/code_7FED0.h b/src/app/code_7FED0.h index 8146596..7f0806d 100644 --- a/src/app/code_7FED0.h +++ b/src/app/code_7FED0.h @@ -3,6 +3,8 @@ #include +extern s32 D_8034F390; + void func_802F8AB8(f32, f32, f32, f32, f32*); void func_802F9BF8(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32); diff --git a/src/app/code_82520.c b/src/app/code_82520.c index 1606cdf..41da67b 100644 --- a/src/app/code_82520.c +++ b/src/app/code_82520.c @@ -2,6 +2,8 @@ #include #include "code_82520.h" +u8 D_8034F3A0 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_82520/func_802FAFF0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_82520/func_802FB0DC.s") diff --git a/src/app/code_82B90.c b/src/app/code_82B90.c index 1d3b32b..6ed067d 100644 --- a/src/app/code_82B90.c +++ b/src/app/code_82B90.c @@ -1,5 +1,9 @@ #include "common.h" +s32 D_8034F3B0[3] = { 0 }; +s32 D_8034F3BC[3] = { 0 }; +f32 D_8034F3C8[3] = { 0, 0, -1.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_82B90/func_802FB660.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_82B90/func_802FB784.s") diff --git a/src/app/code_8A760.c b/src/app/code_8A760.c index edcd84e..f4fb1f5 100644 --- a/src/app/code_8A760.c +++ b/src/app/code_8A760.c @@ -1,5 +1,7 @@ #include "common.h" +s32 D_8034F3E0[4] = { 0 }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_8A760/func_80303230.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_8A760/func_80303714.s") diff --git a/src/app/code_905C0.c b/src/app/code_905C0.c index 84047ae..273a6ed 100644 --- a/src/app/code_905C0.c +++ b/src/app/code_905C0.c @@ -1,5 +1,7 @@ #include "common.h" +s32 D_8034F3F0[4] = { 0xFC, 0xFB, 0, 0 }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_905C0/func_80309090.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_905C0/func_803097E0.s") diff --git a/src/app/code_94E60.c b/src/app/code_94E60.c index 5aacddd..d97dd73 100644 --- a/src/app/code_94E60.c +++ b/src/app/code_94E60.c @@ -1,5 +1,18 @@ #include "common.h" +s8 D_8034F7A0 = 0; +s8 D_8034F7A4 = 0; +u8 D_8034F7A8 = 0xFF; +u8 D_8034F7AC[4] = { 0xFF, 0, 0, 0 }; +u8 D_8034F7B0 = 0; +s8 D_8034F7B4[4] = { 0 }; // might be u8 +u8 D_8034F7B8 = 0; +u8 D_8034F7BC = 0; +u8 D_8034F7C0[4] = { 1, 0, 0, 0 }; +f32 D_8034F7C4[6] = { -68.08f, -302.14f, 10.74f, -0.0174533f, 0.1f, 0.0f }; +f32 D_8034F7DC = 0.0f; +f32 D_8034F7E0 = 1.6f; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_94E60/func_8030D930.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_94E60/func_8030D9C8.s") diff --git a/src/app/code_94E60.h b/src/app/code_94E60.h index f8e465a..e56ff25 100644 --- a/src/app/code_94E60.h +++ b/src/app/code_94E60.h @@ -3,13 +3,6 @@ #include -typedef struct { - u16 unk0; - u16 unk2; - u16 unk4; -} Unk8034FBD4; - extern s8 D_8034F7C0; -extern Unk8034FBD4 D_8034FBD4[]; #endif // APP_CODE_94E60_H diff --git a/src/app/code_9A960.c b/src/app/code_9A960.c index dd7ae17..f271bdf 100644 --- a/src/app/code_9A960.c +++ b/src/app/code_9A960.c @@ -5,6 +5,10 @@ #include "code_9A960.h" +f32 D_8034F850 = 0.0f; +f32 D_8034F854 = 0.1000000015f; +s32 D_8034F858 = 0; + void func_80313430(f32 arg0, f32 arg1, f32 arg2, f32* arg3, f32* arg4, f32* arg5) { f32 fake1, fake2, fake3; f32 sp20; diff --git a/src/app/code_9A960.h b/src/app/code_9A960.h index 215680c..9dafaf9 100644 --- a/src/app/code_9A960.h +++ b/src/app/code_9A960.h @@ -4,8 +4,8 @@ #include #include "code_5A6A0.h" -extern f32 D_8034F850; // .data related to time -extern f32 D_8034F854; // .data ≈ 0.017, dynamic frame time? +extern f32 D_8034F850; // related to time +extern f32 D_8034F854; // dynamic frame time? void func_80313430(f32 arg0, f32 arg1, f32 arg2, f32* arg3, f32* arg4, f32* arg5); void func_80313570(Mtx4F*, f32*, f32*, f32*, f32*, f32*, f32*); diff --git a/src/app/code_9C080.c b/src/app/code_9C080.c index 597a733..e34b871 100644 --- a/src/app/code_9C080.c +++ b/src/app/code_9C080.c @@ -1,5 +1,20 @@ #include "common.h" #include "code_9C080.h" +#include + +s32 D_8034F860 = 0xFFFF; +s32 D_8034F864 = 0xFF; +s32 D_8034F868 = 0; +f32 D_8034F86C = 180.0f; +f32 D_8034F870 = 0.0f; +s32 D_8034F874 = 0; +s32 D_8034F878 = 1; +s32 D_8034F87C = 0; +Vec3F D_8034F880 = { 1725.0f, -659.0f, 28.0f }; +s32 padD_8034F88C = 0; +s32 D_8034F890 = 0xFF; +s32 D_8034F894 = 0; +Vec3F D_8034F898 = { -368.0f, 648.0f, 106.0f }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_9C080/func_80314B50.s") diff --git a/src/app/code_9CF50.c b/src/app/code_9CF50.c index c0cd336..641a6a3 100644 --- a/src/app/code_9CF50.c +++ b/src/app/code_9CF50.c @@ -1,5 +1,12 @@ #include "common.h" #include "code_9CF50.h" +#include + +s32 D_8034F8B0 = 0xFFFF; +f32 D_8034F8B4 = 0.0f; +s32 D_8034F8B8 = 0; +s32 D_8034F8BC = 0; +Vec3F D_8034F8C0 = { -73.8f, 575.7f, 88.3f }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_9CF50/func_80315A20.s") diff --git a/src/app/code_9D3C0.c b/src/app/code_9D3C0.c index 8693a8d..d27183c 100644 --- a/src/app/code_9D3C0.c +++ b/src/app/code_9D3C0.c @@ -1,5 +1,12 @@ #include "common.h" +f32 D_8034F8D0[] = { 0.0f, 0.2f, 0.4f, 0.6f, 1.0f }; +s32 D_8034F8E4 = 0; +s32 D_8034F8E8 = 0; +s32 D_8034F8EC = 4; +s32 D_8034F8F0 = 4; +s32 D_8034F8F4 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_9D3C0/func_80315E90.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_9D3C0/func_80315F0C.s") diff --git a/src/app/code_AE460.c b/src/app/code_AE460.c index 5101cf9..cf37689 100644 --- a/src/app/code_AE460.c +++ b/src/app/code_AE460.c @@ -1,5 +1,9 @@ #include "common.h" +f32 D_8034FBA0 = 0.0f; +f32 D_8034FBA4 = 0.5f; +s32 D_8034FBA8 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_AE460/func_80326F30.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_AE460/func_80327040.s") diff --git a/src/app/code_AF950.c b/src/app/code_AF950.c index faa97c3..7df7ab2 100644 --- a/src/app/code_AF950.c +++ b/src/app/code_AF950.c @@ -1,4 +1,9 @@ #include "common.h" +#include + +// used as an assignment +Vec3F D_8034FBB0 = { 0.0f, 0.0f, 0.0f }; +s32 padD_8034FBBC[5] = { 0 }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_AF950/func_80328420.s") diff --git a/src/app/code_B2900.c b/src/app/code_B2900.c index 88b1066..10053ad 100644 --- a/src/app/code_B2900.c +++ b/src/app/code_B2900.c @@ -9,6 +9,20 @@ #include "code_CB7C0.h" #include "rings.h" +s32 D_8034FBD0 = 0; +Unk8034FBD4 D_8034FBD4[] = { + { 0x0046, 0x0050, 0x005A }, + { 0x008C, 0x00A0, 0x00B4 }, + { 0x00D2, 0x00F0, 0x010E }, + { 0x00D2, 0x00F0, 0x010E }, + { 0x0046, 0x0050, 0x005A }, + { 0x0046, 0x0050, 0x005A }, + { 0x0046, 0x0050, 0x005A }, + { 0x0000, 0x0000, 0x0000 }, + { 0x0000, 0x0000, 0x0000 }, + { 0x0000, 0x0000, 0x0000 } +}; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B2900/func_8032B3D0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B2900/func_8032B508.s") diff --git a/src/app/code_B2900.h b/src/app/code_B2900.h index 4fc34e2..3cf066d 100644 --- a/src/app/code_B2900.h +++ b/src/app/code_B2900.h @@ -4,6 +4,13 @@ #include #include "save.h" +typedef struct { + u16 unk0; + u16 unk2; + u16 unk4; +} Unk8034FBD4; +extern Unk8034FBD4 D_8034FBD4[]; + void func_8032B3D0(void*); s32 func_8032C080(s32); void func_8032B560(s32, u8, u8, u8); diff --git a/src/app/code_B3A70.c b/src/app/code_B3A70.c index 60a9790..22b3cbb 100644 --- a/src/app/code_B3A70.c +++ b/src/app/code_B3A70.c @@ -1,4 +1,10 @@ #include "common.h" +#include + +s32 D_8034FC10[] = { 0xDC, 0x14E, 0x12F, 0x1D }; +s32 D_8034FC20[] = { 0xDC, 0x1D }; +s32 D_8034FC28[] = { 0xDC, 0x14E, 0x1D }; +Vec3F D_8034FC34 = { 0.0f, 0.0f, 1.0f }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B3A70/func_8032C540.s") diff --git a/src/app/code_B5280.c b/src/app/code_B5280.c index ef37fcc..8ffb5a2 100644 --- a/src/app/code_B5280.c +++ b/src/app/code_B5280.c @@ -1,6 +1,54 @@ #include "common.h" #include "code_B5280.h" +extern s32 D_803718F0[4]; +extern s32 D_80371900[4]; +extern s32 D_80371910[4]; +extern s32 D_80371920[4]; + +const char* D_8034FC40[] = { "HG_E_S2", NULL, NULL, "HG_A1_S2", "HG_A2_S2", NULL, "HG_B1_S2", "HG_B2_S2", "HG_B3_S2", + "HG_P1_S2", "HG_P2_S2", "HG_P3_S2", "RP_E_S2", NULL, NULL, "RP_A1_S2", "RP_A2_S2", NULL, + "RP_B1_S2", "RP_B2_S2", "RP_B3_S2", "RP_P1_S2", "RP_P2_S2", "RP_P3_S2", "GC_E_S2", NULL, NULL, + "GC_A1_S2", "GC_A2_S2", NULL, "GC_B1_S2", "GC_B2_S2", "GC_B3_S2", "GC_P1_S2", "GC_P2_S2", "GC_P3_S2", + "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", + "CB_L123_S2", "CB_L123_S2", "CB_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", + "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "SD_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", + "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2", "HP_L123_S2" }; + +const char* D_8034FD60[] = { "HG_E_S1", NULL, NULL, "HG_A1_S1", "HG_A2_S1", NULL, "HG_B1_S1", "HG_B2_S1", "HG_B3_S1", + "HG_P1_S1", "HG_P2_S1", "HG_P3_S1", "RP_E_S1", NULL, NULL, "RP_A1_S1", "RP_A2_S1", NULL, + "RP_B1_S1", "RP_B2_S1", "RP_B3_S1", "RP_P1_S1", "RP_P2_S1", "RP_P3_S1", "GC_E_S1", NULL, NULL, + "GC_A1_S1", "GC_A2_S1", NULL, "GC_B1_S1", "GC_B2_S1", "GC_B3_S1", "GC_P1_S1", "GC_P2_S1", "GC_P3_S1", + "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", "CB_L123_S1", + NULL, NULL, NULL, "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", + "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "SD_L123_S1", "HP_L1_S1", "HP_L1_S1", "HP_L1_S1", + "HP_L2_S1", "HP_L2_S1", "HP_L2_S1", "HP_L3_S1", "HP_L3_S1", "HP_L3_S1", NULL, NULL, NULL }; + +u8 D_8034FE80[] = { + 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0B, 0x00, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x0B, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x02, 0x06, 0x00, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x0B, 0x00, + 0x01, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x09, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x03, 0x05, 0x01, 0x02, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x09, + 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x07, 0x01, 0x02, 0x03, 0x08, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x07, 0x01, 0x02, 0x03, 0x08, + 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, + 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, 0x0F, 0x0E, 0x0D, 0x0C, + 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, + 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, 0x01, 0x02, 0x10, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, +}; + +s32 D_8034FFA0[] = { + 0xE, + 0x60, + 0x5B, +}; + +s32* D_8034FFAC[] = { D_803718F0, D_80371900, D_80371910, D_80371920 }; +s32 D_8034FFBC = 0; +s32 D_8034FFC0 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/func_8032DD50.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/func_8032DE14.s") @@ -11,246 +59,6 @@ #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/func_8032E000.s") -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556B0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556B8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556C4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556D0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556DC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556E8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803556F4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355700.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035570C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355718.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355720.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035572C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355738.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355744.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355750.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035575C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355768.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355774.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355780.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355788.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355794.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557A0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557AC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557B8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557C4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557D0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557DC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557E8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803557F4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355800.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035580C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355818.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355824.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355830.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035583C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355848.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355854.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355860.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035586C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355878.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355884.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355890.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035589C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558A8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558B4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558C0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558CC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558D8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558E4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558F0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803558FC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355908.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355914.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355920.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035592C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355938.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355944.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355950.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035595C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355968.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355974.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355980.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_8035598C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355998.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559A0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559AC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559B8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559C4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559D0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559DC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559E8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_803559F4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A00.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A08.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A14.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A20.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A2C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A38.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A44.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A50.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A5C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A68.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A70.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A7C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A88.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355A94.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AA0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AAC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AB8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AC4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AD0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355ADC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AE8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355AF4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B00.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B0C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B18.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B24.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B30.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B3C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B48.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B54.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B60.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B6C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B78.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B84.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B90.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355B9C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BA8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BB4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BC0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BCC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BD8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BE4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BF0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355BFC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355C08.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355C14.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355C20.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/D_80355C2C.s") - #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/func_8032E060.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_B5280/func_8032E698.s") diff --git a/src/app/code_BD670.c b/src/app/code_BD670.c index cd74c27..9a77763 100644 --- a/src/app/code_BD670.c +++ b/src/app/code_BD670.c @@ -1,5 +1,8 @@ #include "common.h" #include "code_BD670.h" +#include + +Vec3F D_80350500 = { -207.927f, -897.804f, 112.643f }; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_BD670/func_80336140.s") diff --git a/src/app/code_C9B60.c b/src/app/code_C9B60.c index 6ff08a2..dee1734 100644 --- a/src/app/code_C9B60.c +++ b/src/app/code_C9B60.c @@ -1,5 +1,9 @@ #include "common.h" +u8 D_80350690 = 1; +s32 D_80350694 = 1; +s32 D_80350698[] = { 0x188, 0x4E }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/code_C9B60/func_80342630.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/code_C9B60/func_803427FC.s") diff --git a/src/app/code_CB7C0.c b/src/app/code_CB7C0.c index 28b1be5..c2e0453 100644 --- a/src/app/code_CB7C0.c +++ b/src/app/code_CB7C0.c @@ -1,6 +1,13 @@ #include "common.h" #include "code_CB7C0.h" +f32 D_803506A0[] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 5.0f, 0.05f, 0.0f, 0.0f, 0.975f, 5.5f, 0.06f, 0.04f, 0.03f, 0.88f, 6.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 17.0f, 0.0f, 0.0f, 0.0f, 0.0f, 18.0f, 0.0f, 0.0f, 0.01f, 0.15f, 18.5f, 0.0f, 0.01f, 0.03f, 0.25f, 19.0f, + 0.0f, 0.0f, 0.0f, 0.65f, 19.5f, 0.0f, 0.0f, 0.0f, 0.96f, 20.0f, 0.0f, 0.0f, 0.0f, 0.99f, 24.0f, 0.0f, 0.0f, 0.0f, 1.0f, +}; +s32 D_8035078C = 0; + extern u8 D_80378CF4; #pragma GLOBAL_ASM("asm/nonmatchings/app/code_CB7C0/func_80344290.s") diff --git a/src/app/code_CFC40.c b/src/app/code_CFC40.c index dc5a044..fdf43fb 100644 --- a/src/app/code_CFC40.c +++ b/src/app/code_CFC40.c @@ -1,4 +1,5 @@ #include "common.h" +#include "credits.h" #pragma GLOBAL_ASM("asm/nonmatchings/app/code_CFC40/func_80348710.s") diff --git a/src/app/code_D2D50.c b/src/app/code_D2D50.c index 7b7fb89..00cd041 100644 --- a/src/app/code_D2D50.c +++ b/src/app/code_D2D50.c @@ -10,14 +10,14 @@ #include "proxanim.h" // .data -extern s32 D_803509C0; // = 0xFFFF -extern s32 D_803509C4; // = 0xFFFF -extern s32 D_803509C8; // = 0xFF -extern s32 D_803509CC; // = 0 -extern f32 D_803509D0; // = 0.0f -extern f32 D_803509D4; // = 0 -extern s32 D_803509D8; // = 0 -extern Vec3F D_803509DC; // { 750.0f, 100.0f, 4.5f } +s32 D_803509C0 = 0xFFFF; +s32 D_803509C4 = 0xFFFF; +s32 D_803509C8 = 0xFF; +s32 D_803509CC = 0; +f32 D_803509D0 = 0.0f; +f32 D_803509D4 = 0; +s32 D_803509D8 = 0; +Vec3F D_803509DC = { 750.0f, 100.0f, 4.5f }; // .bss extern Mtx4F D_8037F380; diff --git a/src/app/code_D3810.c b/src/app/code_D3810.c index 2a3063e..02f291b 100644 --- a/src/app/code_D3810.c +++ b/src/app/code_D3810.c @@ -18,8 +18,9 @@ typedef struct { } Unk8037F450; // .data -extern s32 D_803509F0; // = 0; -extern Vec3F D_803509F8; // = {1156.66f, 1770.82f, 0.0f}; +s32 D_803509F0 = 0; +s32 padD_803509F4 = 0; +Vec3F D_803509F8 = { 1156.66f, 1770.82f, 0.0f }; // .bss extern Unk8037F450 D_8037F450[5]; diff --git a/src/app/credits.c b/src/app/credits.c index f973d07..91250a1 100644 --- a/src/app/credits.c +++ b/src/app/credits.c @@ -1,5 +1,146 @@ #include "common.h" #include "credits.h" +#include + +u8 D_8034F420[] = { 0, 3, 1, 2, 0, 2, 3, 1, 0, 1, 2, 3, 2, 1, 3, 0, 1, 0, 3, 2, 0, 1, 2, 0, 0, 3, 1, 2 }; + +u8 D_8034F43C[] = { 0, 2, 4, 9 }; + +s16 D_8034F440[] = { 0, 0x28, 0x51, 0xA5, 0, 0, 0, 0 }; + +Vec3F D_8034F450[] = { + { 120.0f, 0.0f, 0.7853980660438538f }, + { 300.0f, 0.20000000298023224f, 0.6108651757240295f }, + { 500.0f, -1.3707962036132812f, 0.6981316208839417f }, + { 340.0f, 3.4000000953674316f, 0.6108651757240295f } +}; + +u16 D_8034F480[][2] = { + { 0x21, 0xDC }, + { 0x1F, 0xDC }, + { 0x20, 0xDC }, + { 0x22, 0xDC }, + { 0x23, 0xDC }, + { 0x24, 0xDC }, + { 0x25, 0xDC }, + { 0x2D, 0xDC }, +}; + +u16 D_8034F4A0[][2] = { + { 0x27, 0xDC }, + { 0x28, 0xDC }, + { 0x26, 0xDC }, + { 0x2A, 0xDC }, + { 0x2B, 0xDC }, + { 0x2C, 0xDC }, + { 0x29, 0xDC } +}; + +u16 D_8034F4BC[] = { 0xEB, 0x13B, 0x125, 0x1B5 }; + +s32 D_8034F4C4 = 0x1720000; + +u16 D_8034F4C8[] = { 0x129, 0x10D, 0xE0, 0xE0, 0x0129, 0x0129, 0x0129, 0xE0 }; + +u16 D_8034F4D8[] = { 0x9E, 0x9D, 0x07, 0x93 }; + +typedef struct { + const char* unk0; + s32 unk4; +} Unk8034F4E0; + +Unk8034F4E0 D_8034F4E0[] = { + { "NINTENDO STAFF", 0x10000 }, + { "DIRECTOR", 0x20000 }, + { "MAKOTO WADA", 0x30000 }, + { "CO DIRECTOR", 0x20000 }, + { "YASUYUKI OYAGI", 0x30000 }, + { "GRAPHIC DESIGNER", 0x20000 }, + { "HIROAKI TAKENAKA", 0x30000 }, + { "YOSHIYUKI KATO", 0x30000 }, + { "SOUND ARRANGEMENT", 0x20000 }, + { "AKITO NAKATSUKA", 0x30000 }, + { "PROJECT ARRANGEMENT", 0x20000 }, + { "SHIGEKI YAMASHIRO", 0x30000 }, + { "HIRO NAKAMURA", 0x30000 }, + { "DARREN SMITH", 0x30000 }, + { "JIM WORNELL", 0x30000 }, + { "PARADIGM STAFF", 0x10000 }, + { "PROJECT MANAGER", 0x20000 }, + { "DAVE GATCHEL", 0x30000 }, + { "LEAD SOFTWARE ENGINEER", 0x20000 }, + { "MIKE ENGELDINGER", 0x30000 }, + { "LEAD MODELING AND EFFECTS", 0x20000 }, + { "WES HOFFMAN", 0x30000 }, + { "SOFTWARE ENGINEERING", 0x20000 }, + { "MIKE PANOFF", 0x30000 }, + { "AARON HIGHTOWER", 0x30000 }, + { "JON DAVIS", 0x30000 }, + { "STEVE LOTSPEICH", 0x30000 }, + { "MIKE BIENVENU", 0x30000 }, + { "SAM PERERA", 0x30000 }, + { "STEVE FUHRMAN", 0x30000 }, + { "ROB ROSSOW", 0x30000 }, + { "CHRIS MUMFORD", 0x30000 }, + { "RICHARD BAKER", 0x30000 }, + { "MODELING AND ANIMATION", 0x20000 }, + { "DAVID KRUEGER", 0x30000 }, + { "GARY BANDY", 0x30000 }, + { "GREG GUTH", 0x30000 }, + { "AUDIO SUPPORT", 0x20000 }, + { "SCOTT GARGASH", 0x30000 }, + { "ANU APPAJI", 0x30000 }, + { "JOHN PERSER", 0x30000 }, + { "MUSIC COMPOSITION", 0x20000 }, + { "DAN HESS", 0x30000 }, + { "PRODUCT MARKETING SUPPORT", 0x20000 }, + { "MATTHEW SHANNON YARBROUGH", 0x30000 }, + { "SPECIAL THANKS", 0x20000 }, + { "KIMIYOSHI FUKUI", 0x30000 }, + { "KENJI MIKI", 0x30000 }, + { "MASATO HATAKEYAMA", 0x30000 }, + { "KENSUKE TANABE", 0x30000 }, + { "NARUHISA KAWANO", 0x30000 }, + { "EIJI ONOZUKA", 0x30000 }, + { "SHIGEO KIMURA", 0x30000 }, + { "HIRO YAMADA", 0x30000 }, + { "KOJI MITSUNARI", 0x30000 }, + { "KAZUNOBU ERI", 0x30000 }, + { "YOSHITAKA YASUMOTO", 0x30000 }, + { "TSUTOMU KOGANEZAWA", 0x30000 }, + { "TAKAYUKI HASHIDA", 0x30000 }, + { "SATOSHI KIRA", 0x30000 }, + { "", 0x30000 }, + { "MIKE FUKUDA", 0x30000 }, + { "MASAHITO WATANABE", 0x30000 }, + { "MICHAEL KELBAUGH", 0x30000 }, + { "", 0x30000 }, + { "RON TOUPAL", 0x30000 }, + { "RON PAIGE", 0x30000 }, + { "DIANE ROTH", 0x30000 }, + { "SHARON LINDHOLM", 0x30000 }, + { "CHRIS JOHNSON", 0x30000 }, + { "JANICE PANOFF", 0x30000 }, + { "", 0x30000 }, + { "MARIO CLUB STAFF", 0x30000 }, + { "", 0x30000 }, + { "NOA PRODUCT TESTING", 0x30000 }, + { "PRODUCERS", 0x20000 }, + { "GENYO TAKEDA", 0x40000 }, + { "SHIGERU MIYAMOTO", 0x40000 }, + { "EXECUTIVE PRODUCER", 0x20000 }, + { "HIROSHI YAMAUCHI", 0x30000 }, + { "", 0x30000 }, + { "PRESENTED BY", 0x20000 }, + { "NINTENDO", 0x50000 }, + { NULL, 0x30000 }, +}; + +f32 D_8034F780 = -32.0f; +u8 D_8034F784 = 1; +f32 D_8034F788 = 0.0f; +f32 D_8034F78C = -1.0f; +f32 D_8034F790 = 0.0f; #pragma GLOBAL_ASM("asm/nonmatchings/app/credits/func_8030C1C0.s") @@ -26,169 +167,3 @@ #pragma GLOBAL_ASM("asm/nonmatchings/app/credits/func_8030D208.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/credits/creditsScene.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CA0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CB0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CBC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CC8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CD4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CE4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353CF8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D0C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D1C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D30.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D40.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D54.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D68.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D78.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D88.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353D94.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353DA4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353DB4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353DC4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353DDC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353DF0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E0C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E18.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E30.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E3C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E4C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E58.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E68.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E78.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E84.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353E94.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353EA0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353EB0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353EC0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353ED8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353EE8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353EF4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F00.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F10.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F20.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F2C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F38.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F4C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F58.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F74.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353F90.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FA0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FB0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FBC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FD0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FE0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80353FF0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354000.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354010.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035401C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035402C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035403C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354050.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354064.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354078.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354088.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035408C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354098.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540AC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540C0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540C4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540D0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540DC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540E8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803540F8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354108.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354118.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035411C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354130.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354134.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354148.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354154.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354164.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_80354178.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_8035418C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803541A0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803541A4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/app/credits/D_803541B4.s") diff --git a/src/app/credits.h b/src/app/credits.h index 9eab3f5..f17e7c3 100644 --- a/src/app/credits.h +++ b/src/app/credits.h @@ -3,6 +3,9 @@ #include +extern u8 D_8034F420[]; +extern u8 D_8034F43C[]; + s32 func_8030CB60(s32); s32 func_8030CC48(void); diff --git a/src/app/demo.c b/src/app/demo.c index df09e4a..2bdb6ec 100644 --- a/src/app/demo.c +++ b/src/app/demo.c @@ -28,7 +28,10 @@ typedef struct Unk8036DA30 { DemoRecordingEntry entries[0x708]; } DemoRecording; -extern s32 D_8034FAD0; +// .data +s32 D_8034FAD0 = 0; + +// .bss extern DemoRecording* D_8036DA30; extern f32 D_8036DA34; extern f32 D_8036DA38; diff --git a/src/app/demo_attitude.c b/src/app/demo_attitude.c index 66264a1..691d30a 100644 --- a/src/app/demo_attitude.c +++ b/src/app/demo_attitude.c @@ -28,7 +28,10 @@ typedef struct Unk8034F970 { PPOS* unk4; } Unk8034F970; -extern Unk8034F970* D_8034F970; +// .data +Unk8034F970* D_8034F970 = NULL; + +// .bss extern s32 D_8036D320; extern s32 D_8036D324; extern f32 D_8036D328; diff --git a/src/app/hud.c b/src/app/hud.c index 0a21111..e0013cc 100644 --- a/src/app/hud.c +++ b/src/app/hud.c @@ -29,11 +29,41 @@ typedef struct { s16 unk2; } Unk8034F93C; -extern f32 D_8034F910; -extern s32 D_8034F914; -extern s32 D_8034F938; -extern Unk8034F93C D_8034F93C[3]; -extern Unk8034F93C D_8034F95C[4]; +f32 D_8034F910 = 0.0f; +s32 D_8034F914 = 0; +s32 D_8034F918[] = { + 0x132, + 0x131, + 0x133, + 0x134, +}; + +s32 D_8034F928[] = { + ~0x2C, + 0x2D, + 0x87, + ~0x86, +}; +s32 D_8034F938 = 0; + +Unk8034F93C D_8034F93C[] = { + { 0xFFFF, 0xFFFF }, + { 1, 0xFFFF }, + { 1, 1 }, + { 0xFFFF, 1 }, + { 0xFFFF, 0xFFFF }, + { 1, 0xFFFF }, + { 1, 2 }, + { 0xFFFF, 2 } +}; + +Unk8034F93C D_8034F95C[] = { + { 0xFFFF, 0 }, + { 1, 0 }, + { 0, 1 }, + { 0, 0 }, + { 0, 0 }, +}; extern HUDState gHudState; diff --git a/src/app/level.c b/src/app/level.c index 7caf4d5..09c6b38 100644 --- a/src/app/level.c +++ b/src/app/level.c @@ -20,15 +20,11 @@ #include "code_D2D50.h" #include "code_D3810.h" -typedef struct { - s32 unk0; -} Unk8034F410; - -extern s32 D_8034F400; -extern s32 D_8034F404; -extern LevelObjects* D_8034F408; -extern s32 gLevelCurMap; -extern Unk8034F410 D_8034F410[]; +s32 D_8034F400 = 0; +s32 D_8034F404 = 0; +LevelObjects* D_8034F408 = NULL; +s32 gLevelCurMap = 0; +s32 D_8034F410[] = { 0, 1, 2, 3 }; // likely arrays of structs for level data extern s32 gLevelWOBJ; @@ -278,7 +274,7 @@ LevelObjects* levelLoadMapObjects(u8 mapIdx) { LevelObjects* temp; u8 tmp8; - idx = uvFileReadHeader((s32)func_802314D0(D_8034F410[mapIdx].unk0, 2)); + idx = uvFileReadHeader((s32)func_802314D0(D_8034F410[mapIdx], 2)); temp = &gLevelObjects; uvMemSet((void*)temp, 0, sizeof(LevelObjects)); gLevelObjects.dataWOBJ = &gLevelWOBJ; diff --git a/src/app/level_objects.c b/src/app/level_objects.c index 7cfaa0b..abbd87c 100644 --- a/src/app/level_objects.c +++ b/src/app/level_objects.c @@ -48,17 +48,21 @@ typedef struct { u8 unk0[0x30]; } Unk8037AA88; -extern LevelCommObjects* D_8035078C; -extern u8 gLevelClassU8; -extern u8 gLevelVehicleU8; -extern u8 gLevelTestU8; -extern u8 D_8035079C; -extern u8 D_803507A0; -extern u8 D_803507A4; -extern u8 gMapLookup[]; -extern u8 D_803507AC[]; +u8 gLevelClassU8 = 0; +u8 gLevelVehicleU8 = 0; +u8 gLevelTestU8 = 0; +u8 D_8035079C = 0; +u8 D_803507A0 = 0; +u8 D_803507A4 = 0; +u8 gMapLookup[] = { 1, 3, 5, 10 }; +u8 D_803507AC[] = { + 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, + 0x3E, 0x3F, 0x40, 0x41, 0x11, 0x12, 0x13, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; extern Unk803798E0 D_803798E0[MAX_CLASSES][MAX_TESTS][VEHICLE_COUNT]; +extern LevelCommObjects* D_8035078C; extern LevelCommObjects gLevelCommObjs; diff --git a/src/app/map3d.c b/src/app/map3d.c index fa8ff59..20091a2 100644 --- a/src/app/map3d.c +++ b/src/app/map3d.c @@ -1,6 +1,27 @@ #include #include "demo.h" +s32 D_8034F7F0 = 0xFFFF0000; +s32 D_8034F7F4 = 0; +u16 D_8034F7F8[2] = { 0 }; +f32 D_8034F7FC = 0.0f; +f32 D_8034F800 = 0.0f; +f32 D_8034F804 = 0.0f; +f32 D_8034F808 = 0.0f; +f32 D_8034F80C = 0.6603981256f; +f32 D_8034F810 = 0.6603981256f; +f32 D_8034F814 = 0.0f; +f32 D_8034F818 = 0.0f; +f32 D_8034F81C = 0.0f; +f32 D_8034F820 = 0.0f; +f32 D_8034F824 = 0.0f; +f32 D_8034F828 = 0.0f; +f32 D_8034F82C = 0.0f; +f32 D_8034F830 = 0.0f; +f32 D_8034F834 = 0.0f; +f32 D_8034F838 = 0.0f; +u8 D_8034F83C = 0; + void func_8022E2D4(s32); void func_802EB9C0(void); void func_802EBC30(void); diff --git a/src/app/mem.c b/src/app/mem.c index 7331f56..52b3451 100644 --- a/src/app/mem.c +++ b/src/app/mem.c @@ -3,9 +3,12 @@ #include #include "mem.h" -extern u8* gLevelObjHeapPtr; +// .bss extern u8 gLevelObjHeap[5000]; +// .data +u8* gLevelObjHeapPtr = gLevelObjHeap; + void* mem_get(s32 size) { u8* ret; diff --git a/src/app/pads.c b/src/app/pads.c index 7e513ad..1c88569 100644 --- a/src/app/pads.c +++ b/src/app/pads.c @@ -1,6 +1,9 @@ #include "common.h" #include "pads.h" +s8 D_8034F900 = 0; +u16 D_8034F904[] = { 0x0102, 0x0103, 0x0104, 0x0000, 0x0000, 0x0000 }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/pads/func_80316DC0.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/pads/func_80316E40.s") diff --git a/src/app/snap.c b/src/app/snap.c index f8b66c0..98b5bdf 100644 --- a/src/app/snap.c +++ b/src/app/snap.c @@ -1,5 +1,27 @@ #include "common.h" #include "snap.h" +#include + +s32 D_80350510[] = { 0x4, 0x3, 0x1, 0x2, 0x6, 0x5 }; +s32 D_80350528 = 0; +s32 D_8035052C[] = { 0, 0xFFFF }; +s32 D_80350534 = 0; +s32 D_80350538 = 2; +s32 D_8035053C = 3; +s32 D_80350540 = 1; +u8 D_80350544 = 0; +s32 D_80350548 = 0; +u8 D_8035054C = 0; // might be array of up to 4 elements +s32 D_80350550 = 0; +Vec3F D_80350554 = { 0.0f, 1.0f, 0.0f }; +s32 D_80350560[] = { 0x1C, 0x7D, 0x74, 0x7D, 0xCC, 0x7D, 0x1C, 0x33, 0x74, 0x33, 0xCC, 0x33 }; +s32 D_80350590 = 0; +s32 D_80350594 = 0; +s32 D_80350598 = 0xFFFFFFFF; +s32 D_8035059C = 0xFFFFFFFF; +s32 D_803505A0 = 0xFFFFFFFF; +f32 D_803505A4 = 0.0f; +f32 D_803505A8 = 0.025f; #pragma GLOBAL_ASM("asm/nonmatchings/app/snap/func_80337D50.s") diff --git a/src/app/snd.c b/src/app/snd.c index 7c0baca..14c952a 100644 --- a/src/app/snd.c +++ b/src/app/snd.c @@ -1,7 +1,19 @@ #include "common.h" - #include "snd.h" +u16 D_803505B0 = 0xFF; +f32 D_803505B4 = 0.0f; +f32 D_803505B8 = 1.0f; +f32 D_803505BC = 0.0f; +u8 D_803505C0 = 0; +f32 D_803505C4 = 0.9f; +f32 D_803505C8 = 1.0f; +f32 D_803505CC = 0.8f; +f32 D_803505D0 = 1.0f; +f32 D_803505D4 = 0.65f; +f32 D_803505D8[] = { 0.9f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f, 0.7f, 1.0f }; +f32 D_803505FC[] = { 1.0f, 1.0f, 0.0f, 0.0f, 0.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/snd/func_8033F640.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/snd/func_8033F6F8.s") diff --git a/src/app/snow.c b/src/app/snow.c index 588c334..b944c21 100644 --- a/src/app/snow.c +++ b/src/app/snow.c @@ -1,5 +1,11 @@ #include "common.h" +// unused? +s32 D_80350610 = 0xD; +f32 D_80350614[] = { 310.0f, 34.0f, 151.0f, 350.6f, 62.64f, 167.0f, 240.0f, 123.0f, 121.47f, 344.58f, 154.2f, 159.3f }; +// doesn't really exist, is just to indicate end of D_80350614 +s32 D_80350644 = 0; + #pragma GLOBAL_ASM("asm/nonmatchings/app/snow/snow_create.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/snow/snow_draw.s") diff --git a/src/app/spath.c b/src/app/spath.c index 3e87d3c..dcc49b4 100644 --- a/src/app/spath.c +++ b/src/app/spath.c @@ -1,5 +1,7 @@ #include "common.h" +f32 D_80350650[] = { 2.0f, -2.0f, 1.0f, 1.0f, -3.0f, 3.0f, -2.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f }; + #pragma GLOBAL_ASM("asm/nonmatchings/app/spath/spath_create.s") #pragma GLOBAL_ASM("asm/nonmatchings/app/spath/func_80340668.s")