From 9275eb1264dbc7fd4a18e65956e93046c7d5699e Mon Sep 17 00:00:00 2001 From: Ryan Myers Date: Tue, 14 Sep 2021 09:40:25 -0400 Subject: [PATCH] Fill out unknown_00BC20.h --- src/camera.c | 1 + src/camera.h | 4 - src/game_text.c | 1 + src/game_text.h | 1 - src/menu.c | 3 +- src/menu.h | 3 - src/thread0_epc.c | 1 + src/thread0_epc.h | 3 - src/unknown_00BC20.c | 143 +++++++++--------------------------- src/unknown_00BC20.h | 171 ++++++++++++++++++++++++++++++++++++++++++- src/unknown_0348C0.c | 1 + src/unknown_043920.c | 5 +- src/unknown_043920.h | 2 + 13 files changed, 214 insertions(+), 125 deletions(-) diff --git a/src/camera.c b/src/camera.c index b0a89a50..9c3ada2f 100644 --- a/src/camera.c +++ b/src/camera.c @@ -3,6 +3,7 @@ #include "camera.h" #include "audio.h" +#include "unknown_00BC20.h" extern u32 osTvType; diff --git a/src/camera.h b/src/camera.h index 67133aef..6cbd0fdb 100644 --- a/src/camera.h +++ b/src/camera.h @@ -108,13 +108,9 @@ extern s32 D_A4000000; extern s32 SP_IMEM; //TODO: Remove from here once header files for below are created with these signatures. - s8* get_misc_asset(s32 arg0); //unknown_00BC20 void func_8006F870(Matrix, Matrix); //unknown_070110 s16 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos); //unknown_0255E0 void load_level_2(s32 arg0, s32 arg1, s32 arg2, s32 arg3); //unknown_06B2B0 - void func_8006C164(void); //unknown_00BC20 - void func_8000E194(void); //unknown_00BC20 - void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); //unknown_00BC20 void func_800705F8(s32, f32, f32, f32); //From unknown_070110 void func_8006ECFC(s32 arg0); //From unknown_06B2B0 diff --git a/src/game_text.c b/src/game_text.c index 4e84629e..a2bddf15 100644 --- a/src/game_text.c +++ b/src/game_text.c @@ -3,6 +3,7 @@ #include "game_text.h" #include "menu.h" +#include "unknown_00BC20.h" /************ .data ************/ diff --git a/src/game_text.h b/src/game_text.h index 929f781d..408f37ab 100644 --- a/src/game_text.h +++ b/src/game_text.h @@ -22,7 +22,6 @@ typedef struct unk8012A798 { extern u32 osTvType; void func_8005A3B0(void); //unknown_043920.c -s32 func_8000C8B4(s32 arg0); //unknown_00BC20.c void func_800C29F0(void); void func_800C2AB4(void); diff --git a/src/menu.c b/src/menu.c index f4590bc2..af4b3a8a 100644 --- a/src/menu.c +++ b/src/menu.c @@ -20,6 +20,7 @@ #include "printf.h" #include "textures_sprites.h" #include "thread30.h" +#include "unknown_00BC20.h" /** * @file Contains all the code used for every menu in the game. @@ -5481,7 +5482,7 @@ void func_8009ABD8(s8 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { arg0++; } - if ((phi_v1 == 0) && (get_misc_asset(0x19) == arg0)) { + if ((phi_v1 == 0) && (get_misc_asset(0x19) == (s32 *)arg0)) { D_8012684C = 1; } else { D_8012684C = 0; diff --git a/src/menu.h b/src/menu.h index 4698d877..4095eea2 100644 --- a/src/menu.h +++ b/src/menu.h @@ -646,13 +646,10 @@ extern s16 D_800E1E2C[10]; extern s16 D_800E1E40[10]; Settings *get_settings(void); //src/unknown_06B2B0.c -s8* get_misc_asset(s32 arg0); //unknown_00BC20 void render_textured_rectangle(Gfx **dlist, DrawTexture *arg1, s32 arg2, s32 arg3, u8 red, u8 green, u8 blue, u8 alpha); // Non Matching src/unknown_078050.c void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId); //src/unknown_06B2B0.c void func_80078D00(Gfx**, void *element, s32, s32, f32, f32, u32, s32); //Non Matching src/unknown_078050.c -void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); //unknown_00BC20 -void gParticlePtrList_addObject(Object *object); //src/unknown_00BC20.c s32 get_random_number_from_range(s32, s32); // Non Matching src/unknown_070110.c void func_8007FF88(void); diff --git a/src/thread0_epc.c b/src/thread0_epc.c index 77a75df1..ba6f818d 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -7,6 +7,7 @@ #include "menu.h" #include "controller_pak.h" #include "printf.h" +#include "unknown_00BC20.h" /************ .rodata ************/ diff --git a/src/thread0_epc.h b/src/thread0_epc.h index 2e288174..7ffa3b72 100644 --- a/src/thread0_epc.h +++ b/src/thread0_epc.h @@ -69,8 +69,6 @@ typedef struct unk800D2470 { /* 0x118 */ s32 unk118; } unk800D2470; -s16 *func_80024594(s32 *arg0, s32 *arg1); //unknown_00BC20.c - void func_800B6E50(void); void func_800B6EE0(void); void func_800B6F04(void); @@ -82,7 +80,6 @@ void func_800B76B8(s32 arg0, s32 arg1); s32 func_800B76DC(void); void func_800B77D4(s32 arg0); - void func_800B6F50(void); // Non Matching void thread0(s32 arg0); // Non Matching void func_800B7460(s32 *epc, s32 size, s32 mask); // Non Matching diff --git a/src/unknown_00BC20.c b/src/unknown_00BC20.c index a757f60b..68627c78 100644 --- a/src/unknown_00BC20.c +++ b/src/unknown_00BC20.c @@ -7,10 +7,10 @@ #include "types.h" #include "macros.h" #include "structs.h" -#include "f3ddkr.h" #include "asset_sections.h" #include "asset_loading.h" #include "thread0_epc.h" +#include "controller_pak.h" /************ .data ************/ @@ -208,13 +208,6 @@ s32 gAssetsLvlObjTranslationTableLength; s32 D_8011AEC0; Object **gParticlePtrList; s32 gParticleCount; - -/* Size: 0x3C bytes */ -typedef struct unknown8011AECC { - u8 unk00[0x3A]; - s8 unk3A; - s8 unk3B; -} unknown8011AECC; unknown8011AECC *D_8011AECC; // Array of structs, unknown number of members s32 D_8011AED0; s32 D_8011AED4; @@ -240,21 +233,6 @@ s32 D_8011AF2C; s32 D_8011AF30[12]; s32 D_8011AF60[2]; s32 D_8011AF68[32]; - -/* Size: 0x40 bytes */ -typedef struct unk800179D0 { - s32 unk0; - u32 *unk04; - u32 *unk08; - f32 unk0C[12]; - u32 unk3C; -} unk800179D0; - -/* Unknown Size */ -typedef struct unk800179D0_2 { - s32 unk04; -} unk800179D0_2; - s32 D_8011AFE8; s16 D_8011AFEC; s16 D_8011AFEE; @@ -279,43 +257,18 @@ extern s16 D_8011D5AC; /******************************/ -typedef struct unk8001D6E4_arg1_40 { - u8 pad0[0x71]; -/* 0x71 */ u8 unk71; -} unk8001D6E4_arg1_40; - -typedef struct unk8001D6E4_arg1 { -/* 0x00 */ s16 unk0; -/* 0x02 */ s16 unk2; -/* 0x04 */ s16 unk4; - u8 pad6[0x3A]; -/* 0x40 */ unk8001D6E4_arg1_40 *unk40; -} unk8001D6E4_arg1; - -void calc_dynamic_lighting_for_object_1(unk8001D6E4_arg1 *, ObjectModel *, s16, unk8001D6E4_arg1 *, f32, f32); -void calc_dynamic_lighting_for_object_2(unk8001D6E4_arg1 *, ObjectModel *, s16, f32); - -void func_8000C460(void); -void gParticlePtrList_addObject(Object *); -void gParticlePtrList_flush(void); -void func_8001D258(f32, f32, s32, s32, s32); - -extern void func_800245B4(s16); - - GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B020.s") #if 1 GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B290.s") #else - extern s32 D_800DC754; extern Object *D_800DC75C; extern Object *D_800DC764; s32 *get_misc_asset(s32 arg0); -void func_8000B290(){ +void func_8000B290() { if(D_800DC754){ free_from_memory_pool(); @@ -356,38 +309,36 @@ u32 *func_8000BF44(s32 arg0) { return D_8011B020[arg0]; } -void decrypt_magic_codes(u8 *arg0, s32 length); - void func_8000BF8C(void) { s32 i; func_8001D258(0.67f, 0.33f, 0, -0x2000, 0); - D_8011AE68 = (s32*)new_sub_memory_pool(0x15800, 0x200); + D_8011AE68 = (s32 *)new_sub_memory_pool(0x15800, 0x200); gParticlePtrList = (Object **)allocate_from_main_pool_safe(0x320, COLOR_TAG_BLUE); - D_8011AE6C = (s32*)allocate_from_main_pool_safe(0x50, COLOR_TAG_BLUE); - D_8011AE74 = (s32*)allocate_from_main_pool_safe(0x200, COLOR_TAG_BLUE); - D_8011AECC = (unknown8011AECC*)allocate_from_main_pool_safe(0xE10, COLOR_TAG_BLUE); - D_8011AEDC = (s32*)allocate_from_main_pool_safe(0x50, COLOR_TAG_BLUE); - gObjectStructArrayPtr = (s32*)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); - D_8011AEEC = (s32*)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); - D_8011AEE8 = (s32*)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); - D_8011AF04 = (s32*)allocate_from_main_pool_safe(0x200, COLOR_TAG_BLUE); - D_8011ADCC = (s32*)allocate_from_main_pool_safe(8, COLOR_TAG_BLUE); - D_8011AFF4 = (s32*)allocate_from_main_pool_safe(0x400, COLOR_TAG_BLUE); - gAssetsLvlObjTranslationTable = (s32*)load_asset_section_from_rom(ASSET_LEVEL_OBJECT_TRANSLATION_TABLE); + D_8011AE6C = (s32 *)allocate_from_main_pool_safe(0x50, COLOR_TAG_BLUE); + D_8011AE74 = (s32 *)allocate_from_main_pool_safe(0x200, COLOR_TAG_BLUE); + D_8011AECC = (unknown8011AECC *)allocate_from_main_pool_safe(0xE10, COLOR_TAG_BLUE); + D_8011AEDC = (u32 *)allocate_from_main_pool_safe(0x50, COLOR_TAG_BLUE); + gObjectStructArrayPtr = (Object *)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); + D_8011AEEC = (s32 *)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); + D_8011AEE8 = (s32 *)allocate_from_main_pool_safe(0x28, COLOR_TAG_BLUE); + D_8011AF04 = (u32 *)allocate_from_main_pool_safe(0x200, COLOR_TAG_BLUE); + D_8011ADCC = (s8 *)allocate_from_main_pool_safe(8, COLOR_TAG_BLUE); + D_8011AFF4 = (unk800179D0 *)allocate_from_main_pool_safe(0x400, COLOR_TAG_BLUE); + gAssetsLvlObjTranslationTable = (s16 *)load_asset_section_from_rom(ASSET_LEVEL_OBJECT_TRANSLATION_TABLE); gAssetsLvlObjTranslationTableLength = (get_size_of_asset_section(ASSET_LEVEL_OBJECT_TRANSLATION_TABLE) >> 1) - 1; while (gAssetsLvlObjTranslationTable[gAssetsLvlObjTranslationTableLength] == 0) { gAssetsLvlObjTranslationTableLength--; } - D_8011AD58 = (s32*)allocate_from_main_pool_safe(0x800, COLOR_TAG_BLUE); + D_8011AD58 = (s32 *)allocate_from_main_pool_safe(0x800, COLOR_TAG_BLUE); gAssetsObjectHeadersTable = load_asset_section_from_rom(ASSET_OBJECT_HEADERS_TABLE); gAssetsObjectHeadersTableLength = 0; while (-1 != gAssetsObjectHeadersTable[gAssetsObjectHeadersTableLength]) { gAssetsObjectHeadersTableLength++; } gAssetsObjectHeadersTableLength--; - D_8011AE48 = (s32*)allocate_from_main_pool_safe(gAssetsObjectHeadersTableLength * 4, COLOR_TAG_WHITE); - D_8011AE4C = (s32*)allocate_from_main_pool_safe(gAssetsObjectHeadersTableLength, COLOR_TAG_WHITE); + D_8011AE48 = (s32 *)allocate_from_main_pool_safe(gAssetsObjectHeadersTableLength * 4, COLOR_TAG_WHITE); + D_8011AE4C = (u8 *)allocate_from_main_pool_safe(gAssetsObjectHeadersTableLength, COLOR_TAG_WHITE); for (i = 0; i < gAssetsObjectHeadersTableLength; i++) { (*D_8011AE4C)[i] = 0; @@ -401,7 +352,7 @@ void func_8000BF8C(void) { } decrypt_magic_codes(&gAssetsMiscSection[gAssetsMiscTable[65]], (gAssetsMiscTable[66] - gAssetsMiscTable[65]) * 4); - gObjPtrList = (Object**)allocate_from_main_pool_safe(0x800, COLOR_TAG_BLUE); + gObjPtrList = (Object **)allocate_from_main_pool_safe(0x800, COLOR_TAG_BLUE); D_8011ADC4 = 0; gTimeTrialEnabled = 0; D_8011AEF5 = 0; @@ -664,7 +615,7 @@ u8 is_time_trial_enabled() { return gTimeTrialEnabled; } -u8 func_8000E4D8(void){ +u8 func_8000E4D8(void) { return D_8011AEF5; } @@ -698,7 +649,7 @@ s32 func_8000E9C0(void) { return D_8011AE64; } -void func_8000E9D0(Object *arg0){ +void func_8000E9D0(Object *arg0) { arg0->unk6 |= 0x8000; func_800245B4(arg0->unk2C | 0xC000); gObjPtrList[objCount++] = arg0; @@ -715,30 +666,12 @@ GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FAC4.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FBCC.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FC6C.s") -/* Unknown Size */ -typedef struct unk8000FD20_2 { - u8 unk00[0x13]; - u8 unk13; -} unk8000FD20_2; - -/* Unknown Size */ -typedef struct unk8000FD20 { - u8 unk00[0x4C]; - unk8000FD20_2 *unk4C; -} unk8000FD20; - s32 func_8000FD20(unk8000FD20 *arg0, unk8000FD20_2 *arg1) { arg0->unk4C = arg1; arg1->unk13 = 0xFF; return 0x28; } -/* Unknown Size. This might just be unk8000FD20. */ -typedef struct unk8000FD34 { - u8 unk00[0x5C]; - s32 unk5C; -} unk8000FD34; - s32 func_8000FD34(unk8000FD34 *arg0, s32 arg1) { arg0->unk5C = arg1; func_80016BC4(); @@ -754,11 +687,11 @@ void gParticlePtrList_addObject(Object *object) { gParticleCount++; } -s32 func_80010018(void){ +s32 func_80010018(void) { return gAssetsLvlObjTranslationTableLength; } -s32 func_80010028(s32 arg0){ +s32 func_80010028(s32 arg0) { return (gAssetsLvlObjTranslationTable[arg0] < gAssetsObjectHeadersTableLength); } @@ -767,7 +700,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_00BC20/gParticlePtrList_flush.s") #else //bad regalloc; swap s2 = s3 /*removes objects in particleList from gObjPtrList and frees*/ -void gParticlePtrList_flush(void){ +void gParticlePtrList_flush(void) { s32 j, i, search_indx, tmp; Object *searchObj; @@ -827,7 +760,7 @@ void func_80011560(void) { } GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011570.s") -void func_80011960(Object*, s32, u32, Object_64*, u32, u32, u32, u32, f32); + #if 1 GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011960.s") #else @@ -843,7 +776,7 @@ void func_80011960(Object *arg0, s32 arg2, u32 arg3, Object_64 *arg4 GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011AD0.s") #else extern f32 D_800E5550; -void func_80011AD0(Object *this){ +void func_80011AD0(Object *this) { f32 tmp_f0; u32 offset; switch(this->unk48){ @@ -896,7 +829,7 @@ void func_80012C30(void) { D_8011ADA4 = 0; } -void func_80012C3C(Gfx** dlist){ +void func_80012C3C(Gfx** dlist) { s32 i; Gfx *tmp; for(i = 0; iunk48 == 1) { Object_64 *object_64 = arg0->unk64; @@ -991,10 +920,7 @@ void func_80012F30(Object *arg0) { GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80012F94.s") - -void func_80013548(Object *arg0); - -void render_object(Object *this){ +void render_object(Object *this) { func_80012F94(this); if(this->unk6 & 0x8000){ func_800B3740(this, &D_8011AE8C, &D_8011AE90, &D_8011AE94, 32768); @@ -1024,7 +950,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80013A0C.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80013DCC.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80014090.s") -void func_800142B8(void){ +void func_800142B8(void) { s32 i = D_8011AE60; s32 j; Object *currObj; @@ -1086,7 +1012,7 @@ s16 func_80017E88(void) { GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80017E98.s") GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800185E4.s") -Object * func_80018C6C(void){ +Object *func_80018C6C(void) { s32 i; Object *current_obj; for(i=D_8011AE60; i < objCount; i++){ @@ -1132,7 +1058,6 @@ s32 func_8001B288(void) { } } - s32 func_8001B2E0() { return D_8011AD34; } @@ -1156,8 +1081,8 @@ s32 func_8001B650(void) { GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B668.s") -void func_8001B738(s32 arg0) { - func_80059B7C(arg0, func_800599A8(), D_800DC728, D_800DC72C, D_800DC724); +s32 func_8001B738(s32 arg0) { + return func_80059B7C(arg0, func_800599A8(), D_800DC728, D_800DC72C, D_800DC724); } u8 func_8001B780() { @@ -1339,7 +1264,7 @@ void func_8001E344(s32 arg0) { } } -void func_8001E36C(s32 arg0, f32 *arg1, f32 *arg2, f32 *arg3){ +void func_8001E36C(s32 arg0, f32 *arg1, f32 *arg2, f32 *arg3) { s32 i; Object *current_obj; *arg1 = -32000.0f; diff --git a/src/unknown_00BC20.h b/src/unknown_00BC20.h index 8c450d30..a0b04f1c 100644 --- a/src/unknown_00BC20.h +++ b/src/unknown_00BC20.h @@ -2,17 +2,71 @@ #define _UNKNOWN_00BC20_H_ #include "types.h" +#include "structs.h" +#include "f3ddkr.h" /* Size: 0x8 bytes */ typedef struct unknown800DC6F0 { union { s8 unk00; s32 dummy_force_alignment; // Not sure of a better way to do this. - }; + } unk00_a; u16 unk04; u16 unk06; } unknown800DC6F0; +/* Size: 0x3C bytes */ +typedef struct unknown8011AECC { + u8 unk00[0x3A]; + s8 unk3A; + s8 unk3B; +} unknown8011AECC; + +/* Size: 0x40 bytes */ +typedef struct unk800179D0 { + s32 unk0; + u32 *unk04; + u32 *unk08; + f32 unk0C[12]; + u32 unk3C; +} unk800179D0; + +/* Unknown Size */ +typedef struct unk800179D0_2 { + s32 unk04; +} unk800179D0_2; + +typedef struct unk8001D6E4_arg1_40 { + u8 pad0[0x71]; +/* 0x71 */ u8 unk71; +} unk8001D6E4_arg1_40; + +typedef struct unk8001D6E4_arg1 { +/* 0x00 */ s16 unk0; +/* 0x02 */ s16 unk2; +/* 0x04 */ s16 unk4; + u8 pad6[0x3A]; +/* 0x40 */ unk8001D6E4_arg1_40 *unk40; +} unk8001D6E4_arg1; + +/* Unknown Size */ +typedef struct unk8000FD20_2 { + u8 unk00[0x13]; + u8 unk13; +} unk8000FD20_2; + +/* Unknown Size */ +typedef struct unk8000FD20 { + u8 unk00[0x4C]; + unk8000FD20_2 *unk4C; +} unk8000FD20; + +/* Unknown Size. This might just be unk8000FD20. */ +typedef struct unk8000FD34 { + u8 unk00[0x5C]; + s32 unk5C; +} unk8000FD34; + extern unknown800DC6F0 D_800DC6F0; extern unknown800DC6F0 D_800DC6F8; @@ -62,4 +116,117 @@ extern s32 D_800DC85C; extern u8 D_800DC860; extern u16 D_800DC864; -#endif \ No newline at end of file +void free_tt_ghost_data(void); //unknown_043920.c +f32 func_800707F8(s16); //? +void func_8006C164(void); //unknown_06B2B0 + +u32 *func_8000BF44(s32 arg0); +void func_8000BF8C(void); +void func_8000C460(void); +void func_8000C604(void); +s32 func_8000C8B4(s32 arg0); +void func_8000CBC0(void); +s32 func_8000CC20(u32 *arg0); +u32 func_8000E0B0(void); +void func_8000E128(void); +s8 func_8000E138(); +s8 func_8000E148(); +s8 func_8000E158(void); +s8 func_8000E184(); +void func_8000E194(void); +void func_8000E1B8(void); +s8 func_8000E1CC(void); +s8 func_8000E1DC(); +void func_8000E1EC(Object *object, s32 arg1); +void set_time_trial_enabled(s32 arg0); +u8 is_time_trial_enabled(); +u8 func_8000E4D8(void); +Object *get_object(s32 index); +Object **func_8000E988(s32 *arg0, s32 *cnt); +s32 getObjectCount(void); +s32 func_8000E9C0(void); +void func_8000E9D0(Object *arg0); +void gParticlePtrList_addObject(Object *object); +s32 func_80010018(void); +s32 func_80010028(s32 arg0); +void func_80011390(void); +s32 func_8001139C(); +s32 func_800113AC(); +s32 func_800113BC(); +void func_80011560(void); +void func_80012C30(void); +void func_80012C3C(Gfx** dlist); +void func_80012C98(Gfx **dlist); +void func_80012CE8(Gfx **dlist); +void func_80012D5C(u32 *arg0, u32 *arg1, u32 *arg2, Object *object); +void func_80012F30(Object *arg0); +void render_object(Object *this); +void func_80013548(Object *arg0); +void func_800142B8(void); +u32 func_800179D0(void); +void func_80017E74(s32 arg0); +s16 func_80017E88(void); +Object *func_80018C6C(void); +void func_8001A8D4(s32 arg0); +s16 func_8001AE44(); +s32 func_8001AE54(); +s32 func_8001B288(void); +s32 func_8001B2E0(); +s32 func_8001B3AC(s32 arg0); +s32 func_8001B640(); +s32 func_8001B650(void); +s32 func_8001B738(s32 arg0); +u8 func_8001B780(); +void func_8001B790(void); +unknown8011AECC *func_8001BA00(s32 arg0); +unknown8011AECC *func_8001BA1C(s32 arg0, s32 arg1); +s32 func_8001BA64(); +Object **get_object_struct_array(s32 *cnt); +s32 *func_8001BA90(s32 *arg0); +s32 *func_8001BAAC(s32 *arg0); +Object *get_object_struct(s32 indx); +void func_8001BC40(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +u32 func_8001BD94(s32 arg0); +void func_8001D1AC(void); +void func_8001D1BC(s32 arg0); +u32 func_8001D1E4(s32 *arg0); +u32 func_8001D214(s32 arg0); +void func_8001D23C(s32 arg0, s32 arg1, s32 arg2); +void calc_dyn_light_and_env_map_for_object(ObjectModel *model, Object *object, s32 arg2, f32 arg3); +s32 *get_misc_asset(s32 index); +s32 func_8001E2EC(s32 arg0); +void func_8001E344(s32 arg0); +void func_8001E36C(s32 arg0, f32 *arg1, f32 *arg2, f32 *arg3); +s16 func_8001E440(); +void func_8001E450(s32 arg0); +void func_8001E45C(s32 arg0); +s32 func_8001E4B4(void); +s8 func_8001F3B8(void); +void func_8001F3C8(s32 arg0); +void func_8001F450(void); +s32 func_800210CC(s8 arg0); +s8 func_800214C4(void); +f32 lerp(f32 *arg0, u32 arg1, f32 arg2); +void func_800228DC(s32 arg0, s32 arg1, s32 arg2); +void func_800228EC(s32 arg0); +s8 func_8002341C(void); +s32 func_80023568(void); +s8 func_800235C0(void); +void func_800238BC(Object *arg0); +void run_object_loop_func(Object *obj, s32 arg1); +void func_8002458C(s32 arg0); +s16 *func_80024594(s32 *arg0, s32 *arg1); +void func_800245B4(s16 arg0); + +//Non Matching +void calc_dynamic_lighting_for_object_1(unk8001D6E4_arg1 *, ObjectModel *, s16, unk8001D6E4_arg1 *, f32, f32); +void calc_dynamic_lighting_for_object_2(unk8001D6E4_arg1 *, ObjectModel *, s16, f32); +void gParticlePtrList_flush(void); +void func_8001D258(f32, f32, s32, s32, s32); +void decrypt_magic_codes(u8 *arg0, s32 length); +void func_80011960(Object*, s32, u32, Object_64*, u32, u32, u32, u32, f32); +void func_80011AD0(Object *this); +void func_80012E28(Object *this); +void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); + +#endif diff --git a/src/unknown_0348C0.c b/src/unknown_0348C0.c index c60ca9d0..5b05df05 100644 --- a/src/unknown_0348C0.c +++ b/src/unknown_0348C0.c @@ -11,6 +11,7 @@ #include "camera.h" #include "menu.h" // For cheats #include "unknown_0ABDF0.h" +#include "unknown_043920.h" /************ .data ************/ diff --git a/src/unknown_043920.c b/src/unknown_043920.c index 5a4ed03c..de08b30d 100644 --- a/src/unknown_043920.c +++ b/src/unknown_043920.c @@ -10,6 +10,7 @@ #include "macros.h" #include "structs.h" #include "asset_sections.h" +//#include "controller_pak.h" /* Size: 8 bytes */ typedef struct GhostHeader { @@ -994,8 +995,8 @@ void free_tt_ghost_data(void) { gGhostData[2] = NULL; } -void func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4) { - func_80075000(arg0, (s16)arg1, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], gGhostData[D_8011D59C]); +s32 func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4) { + return func_80075000(arg0, (s16)arg1, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], gGhostData[D_8011D59C]); } GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059BF0.s") diff --git a/src/unknown_043920.h b/src/unknown_043920.h index cf90d10e..5ef25cf3 100644 --- a/src/unknown_043920.h +++ b/src/unknown_043920.h @@ -45,4 +45,6 @@ extern s32 D_800DCDD0; extern s16 D_800DCDD4[4]; +s32 func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4); + #endif