ovl_En_Test4 with 1 non-matching (#319)

* Decompile update and stuff

* Decompile some more

* func_80A41FA4 non_matching

* init is a disaster

* Import bss

* match func_80A41D70

* Improve func_80A42AB8 a bit

* equivalent EnTest4_Init

* Import data

* CLOCK_TIME

* Run formatter

* func_80A42AB8 may be equivalent now, not completely sure

* match func_80A42AB8

* Some minor renames

* Name some struct members

* Format

* format in bigpo

* fix merge issue

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Description: Day transition effects

* Un-rename unk_144

* Update include/macros.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* sIsLoaded

* Update src/overlays/actors/ovl_En_Test4/z_en_test4.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* review

* format

* daytemp

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
This commit is contained in:
Anghelo Carvajal
2021-09-29 00:08:54 -03:00
committed by GitHub
co-authored by engineer124 EllipticEllipsis
parent 2f000058f5
commit 96cd49b6d5
13 changed files with 596 additions and 42 deletions
+6 -6
View File
@@ -1768,7 +1768,7 @@ void func_800FAAB4(GlobalContext* globalCtx, u8 arg1);
// void func_800FB010(void);
void func_800FB320(GlobalContext* globalCtx, u8 param_2);
// void func_800FB388(void);
// void func_800FB758(void);
void func_800FB758(GlobalContext* globalCtx);
// void func_800FB9B4(void);
// void func_800FBCBC(void);
// void func_800FBDEC(void);
@@ -1814,7 +1814,7 @@ void func_800FE658(f32 arg0);
// void func_800FEA50(void);
void func_800FEAB0(void);
// void func_800FEAC0(void);
// void func_800FEAF4(void);
void func_800FEAF4(EnvironmentContext* envCtx);
void* Lib_MemCpy(void* dest, void* src, size_t size);
void* Lib_MemSet(void* buffer, s32 value, size_t size);
f32 Math_CosS(s16 angle);
@@ -2127,7 +2127,7 @@ void func_8010E9F0(s16 arg0, s16 arg1);
// void func_8010EB50(void);
// void func_8010EBA0(void);
// void func_8010EC54(void);
// void func_8010EE74(void);
void func_8010EE74(GlobalContext* globalCtx, s32 day);
void Interface_ChangeAlpha(u16 param_1);
// void func_8010EF9C(void);
// void func_8010F0D4(void);
@@ -2879,7 +2879,7 @@ void func_80150D08(GlobalContext* globalCtx, u32 uParm2);
// void func_801514B0(void);
void func_801518B0(GlobalContext* globalCtx, u16 textId, Actor* Actor);
void func_80151938(GlobalContext* globalCtx, u16 textId);
void func_80151A68(GlobalContext* globalCtx, u16 param_2);
void func_80151A68(GlobalContext* globalCtx, u16 textId);
void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
// void func_80151C9C(void);
// void func_80151DA4(void);
@@ -3058,7 +3058,7 @@ void func_80169EFC(GlobalContext* globalCtx);
s32 FrameAdvance_IsEnabled(GlobalContext* globalCtx);
// UNK_TYPE4 func_8016A02C(s32 param_1, s32 param_2, s16* param_3);
// void func_8016A0AC(void);
// void func_8016A168(void);
s32 func_8016A168(void);
// void func_8016A178(void);
// void func_8016A268(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE1 param_6);
void Play_Init(GameState* gameState);
@@ -3871,7 +3871,7 @@ void func_8019FDC8(UNK_PTR arg0, u16 sfxId, UNK_TYPE arg2);
// void func_8019FF9C(void);
// void func_801A0048(void);
// void func_801A00EC(void);
// void func_801A0124(void);
void func_801A0124(Vec3f* pos, u8 arg1);
// void func_801A0184(void);
// void func_801A01C4(void);
void func_801A0204(UNK_TYPE);
+1
View File
@@ -49,6 +49,7 @@
#define CURRENT_DAY (((void)0, gSaveContext.day) % 5)
#define CLOCK_TIME(hr, min) ((s32)(((hr) * 60 + (min)) * 0x10000 / (24 * 60)))
#define CLOCK_TIME_MINUTE (CLOCK_TIME(0, 1))
#define SLOT(item) gItemSlots[item]
#define AMMO(item) gSaveContext.inventory.ammo[SLOT(item)]
+2 -2
View File
@@ -949,7 +949,7 @@ extern GameStateOverlay daytelopGameStateInfo;
// extern UNK_TYPE2 D_801BDA74;
// extern UNK_TYPE2 D_801BDA78;
// extern UNK_TYPE2 D_801BDA7C;
// extern UNK_TYPE4 D_801BDA9C;
extern s32 D_801BDA9C;
extern UNK_TYPE4 D_801BDAA0;
// extern UNK_TYPE4 D_801BDAA4;
// extern UNK_TYPE2 D_801BDAA8;
@@ -3312,7 +3312,7 @@ extern u8 actorCutsceneNextCutscenes[16];
extern f32 D_801F4E70;
// extern UNK_TYPE1 D_801F4E74;
// extern UNK_TYPE1 D_801F4E78;
// extern UNK_TYPE1 D_801F4E7A;
extern s16 D_801F4E7A;
// extern UNK_TYPE1 D_801F4E80;
// extern UNK_TYPE1 D_801F4EE0;
// extern UNK_TYPE1 D_801F4EE8;
+2 -1
View File
@@ -20,7 +20,8 @@ typedef enum {
} UpgradeType;
typedef enum {
/* 0x01 */ ITEM_BOW = 0x01,
/* 0x00 */ ITEM_OCARINA,
/* 0x01 */ ITEM_BOW,
/* 0x06 */ ITEM_BOMB = 0x06,
/* 0x07 */ ITEM_BOMBCHU,
/* 0x08 */ ITEM_STICK,
+1 -3
View File
@@ -93,9 +93,7 @@ typedef enum LightType {
/* 0x02 */ LIGHT_POINT_GLOW
} LightType;
typedef struct GlobalContext GlobalContext;
typedef void (*LightsBindFunc)(Lights* lights, LightParams* params, Vec3f* vec);
typedef void (*LightsPosBindFunc)(Lights* lights, LightParams* params, GlobalContext* globalCtx);
typedef void (*LightsPosBindFunc)(Lights* lights, LightParams* params, struct GlobalContext* globalCtx);
#endif
+1 -1
View File
@@ -176,7 +176,7 @@ typedef struct Player {
/* 0x386 */ u16 unk_386;
/* 0x388 */ Actor* unk_388;
/* 0x38C */ s16 unk_38C;
/* 0x390 */ Actor* unk_390;
/* 0x390 */ Actor* rideActor;
/* 0x394 */ u8 unk_394;
/* 0x395 */ u8 unk_395;
/* 0x396 */ u8 unk_396;
+4 -2
View File
@@ -2913,9 +2913,11 @@ beginseg
name "ovl_En_Test4"
compress
include "build/src/overlays/actors/ovl_En_Test4/z_en_test4.o"
include "build/data/ovl_En_Test4/ovl_En_Test4.data.o"
include "build/data/ovl_En_Test4/ovl_En_Test4.bss.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Test4/ovl_En_Test4_reloc.o"
#else
include "build/data/ovl_En_Test4/ovl_En_Test4.reloc.o"
#endif
endseg
beginseg
@@ -7,7 +7,9 @@ struct EnHorse;
typedef struct EnHorse {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x450];
/* 0x144 */ char unk_144[0x00C];
/* 0x150 */ s32 unk_150;
/* 0x154 */ char unk_154[0x440];
} EnHorse; // size = 0x594
extern const ActorInit En_Horse_InitVars;
File diff suppressed because it is too large Load Diff
+11 -1
View File
@@ -9,10 +9,20 @@ typedef void (*EnTest4ActionFunc)(struct EnTest4*, GlobalContext*);
typedef struct EnTest4 {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0xC];
/* 0x0144 */ s8 unk_144; // 0 on night, 1 on day
/* 0x0145 */ u8 transitionCsTimer;
/* 0x0146 */ u16 unk_146;
/* 0x0148 */ u16 nextBellTime; // Next time the bell will sound
/* 0x014A */ u16 lastBellTime; // Last time the bell sounded
/* 0x014C */ u8 state;
/* 0x0150 */ EnTest4ActionFunc actionFunc;
} EnTest4; // size = 0x154
typedef enum {
/* 0 */ TEST4_STATE_0,
/* 1 */ TEST4_STATE_1
} EnTest4State;
extern const ActorInit En_Test4_InitVars;
#endif // Z_EN_TEST4_H
+11 -11
View File
@@ -978,13 +978,13 @@
0x801BDBA0:("D_801BDBA0","UNK_TYPE1","",0x1),
0x801BDBA4:("D_801BDBA4","UNK_TYPE1","",0x1),
0x801BDBA8:("D_801BDBA8","UNK_TYPE1","",0x1),
0x801BDBB0:("D_801BDBB0","UNK_TYPE1","",0x1),
0x801BDBB0:("D_801BDBB0","u8","",0x1),
0x801BDBB4:("D_801BDBB4","UNK_TYPE1","",0x1),
0x801BDBB8:("D_801BDBB8","UNK_TYPE1","",0x1),
0x801BDBBC:("D_801BDBBC","UNK_TYPE1","",0x1),
0x801BDBC0:("D_801BDBC0","UNK_TYPE1","",0x1),
0x801BDBC4:("D_801BDBC4","UNK_TYPE1","",0x1),
0x801BDBC8:("D_801BDBC8","UNK_TYPE1","",0x1),
0x801BDBC8:("D_801BDBC8","u8","",0x1),
0x801BDBCC:("D_801BDBCC","UNK_TYPE1","",0x1),
0x801BDCF4:("D_801BDCF4","UNK_TYPE1","",0x1),
0x801BE38E:("D_801BE38E","UNK_TYPE1","",0x1),
@@ -4064,7 +4064,7 @@
0x801F4E70:("D_801F4E70","UNK_TYPE1","",0x1),
0x801F4E74:("D_801F4E74","UNK_TYPE1","",0x1),
0x801F4E78:("D_801F4E78","UNK_TYPE1","",0x1),
0x801F4E7A:("D_801F4E7A","UNK_TYPE1","",0x1),
0x801F4E7A:("D_801F4E7A","s16","",0x2),
0x801F4E80:("D_801F4E80","UNK_TYPE1","",0x1),
0x801F4EE0:("D_801F4EE0","UNK_TYPE1","",0x1),
0x801F4EE8:("D_801F4EE8","UNK_TYPE1","",0x1),
@@ -11773,14 +11773,14 @@
0x80A41D68:("D_80A41D68","UNK_TYPE1","",0x1),
0x80A41D6C:("D_80A41D6C","UNK_TYPE1","",0x1),
0x80A43320:("En_Test4_InitVars","ActorInit","",0x20),
0x80A43340:("D_80A43340","UNK_TYPE4","",0x4),
0x80A43342:("D_80A43342","UNK_TYPE1","",0x1),
0x80A4334A:("D_80A4334A","UNK_TYPE1","",0x1),
0x80A43352:("D_80A43352","UNK_TYPE1","",0x1),
0x80A4335A:("D_80A4335A","UNK_TYPE1","",0x1),
0x80A43364:("D_80A43364","UNK_TYPE1","",0x1),
0x80A434D0:("D_80A434D0","s16","[2]",0x4),
0x80A434D4:("D_80A434D4","UNK_TYPE1","",0x1),
0x80A43340:("sIsLoaded","s32","[3]",0x6),
0x80A43342:("sNightMessages1","s16","[3]",0x6),
0x80A4334A:("sDayMessages1","s16","[3]",0x6),
0x80A43352:("sNightMessages2","s16","[3]",0x6),
0x80A4335A:("sDayMessages2","s16","[3]",0x6),
0x80A43364:("D_80A43364","u16","[2]",0x4),
0x80A434D0:("sCutscenes","s16","[2]",0x4),
0x80A434D4:("sCurrentCs","s16","",0x2),
0x80A449E0:("En_Bat_InitVars","UNK_TYPE1","",0x1),
0x80A44A00:("D_80A44A00","UNK_TYPE1","",0x1),
0x80A44A2C:("D_80A44A2C","UNK_TYPE1","",0x1),
+1
View File
@@ -12,6 +12,7 @@ ABS = "int"
SQ = "int"
CLAMP = "int"
CLOCK_TIME = "int"
CURRENT_DAY = "int"
[decompme.compilers]
"tools/ido_recomp/linux/7.1/cc" = "ido7.1"
+3 -1
View File
@@ -61,7 +61,9 @@ def fix_sfx_flag(id):
if(id.endswith(' - SFX_FLAG')):
splitdata = id.split('-')
return splitdata[0].strip(), ' -' + splitdata[1]
if not(int(id,16) & 0x800):
if id.endswith("U"):
id = id[:-1]
if not(int(id, 16) & 0x800):
newid = '0x' + format(int(id,16) + 0x800,'X')
sfxFlag = ' - SFX_FLAG'
else :