started main functions

This commit is contained in:
Yanis002
2025-02-17 16:11:10 +01:00
parent 61111ddcea
commit d8015068aa
4 changed files with 139 additions and 2 deletions
+3
View File
@@ -9,3 +9,6 @@ libs/cpp/src/__register_global_object.c:
complete
.text start:0x0203ce74 end:0x0203ce94
.bss start:0x02051ad4 end:0x02051ad8
src/Main/Main.cpp:
.text start:0x02000800 end:0x02000bdc
+1 -1
View File
@@ -23,7 +23,7 @@ func_020009fc kind:function(arm,size=0x78) addr:0x020009fc
AutoloadCallback kind:function(arm,size=0x4) addr:0x02000a74
func_02000a78 kind:function(arm,size=0xe8) addr:0x02000a78
func_02000b60 kind:function(arm,size=0x4) addr:0x02000b60
BuildInfo kind:data(any) addr:0x02000b64
gBuildInfo kind:data(any) addr:0x02000b64
main kind:function(arm,size=0x14) addr:0x02000bc8
func_02000bdc kind:function(thumb,size=0x34) addr:0x02000bdc
func_02000c10 kind:function(thumb,size=0xcc) addr:0x02000c10
+1 -1
View File
@@ -23,7 +23,7 @@ func_020009fc kind:function(arm,size=0x78) addr:0x020009fc
AutoloadCallback kind:function(arm,size=0x4) addr:0x02000a74
func_02000a78 kind:function(arm,size=0xe8) addr:0x02000a78
func_02000b60 kind:function(arm,size=0x4) addr:0x02000b60
BuildInfo kind:data(any) addr:0x02000b64
gBuildInfo kind:data(any) addr:0x02000b64
main kind:function(arm,size=0x14) addr:0x02000bc8
func_02000bdc kind:function(thumb,size=0x34) addr:0x02000bdc
func_02000c10 kind:function(thumb,size=0xcc) addr:0x02000c10
+134
View File
@@ -0,0 +1,134 @@
#include "global.h"
#include "types.h"
void func_0203b920(void);
void func_02011da0(void);
void func_0203cdb8(void);
void main(void);
void func_02000a78(void);
void* func_0200093c(unk32, u32*, unk32);
void func_020009fc(void);
void func_02000950(unk32*);
void func_01ffbd70(void);
#define UNK_027FFF9C (*(u32*)0x027FFF9C)
#define REG_IME (*(u32*)0x04000208)
#define REG_VCOUNT (*(u32*)0x04000006)
#define RAM_PALETTES ((u32*)0x05000000)
#define RAM_OAM ((u32*)0x07000000)
typedef void (*UnkStruct_027e0000_Callback)(void);
struct UnkStruct_027e0000 {
unk8 mUnk_00[0x3FFC];
UnkStruct_027e0000_Callback mUnk_3FFC;
};
extern UnkStruct_027e0000* data_027e0000;
extern unk32* data_0204cde0;
extern unk32* data_0204cdf8;
extern unk32* data_02044dc0;
extern unk32* data_02044dc0;
struct BuildInfo {
/* 00 */ unk32* mUnk_00;
/* 04 */ unk32* mUnk_04;
/* 08 */ unk32* mUnk_08;
/* 0C */ unk32* mUnk_0C;
/* 10 */ unk32* mUnk_10;
/* 14 */ unk32* mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ char mUnk_24[28];
/* 3D */ char mUnk_3D[40];
};
extern BuildInfo gBuildInfo;
struct UnkStruct_02049a2c {
/* 00 */ unk8 mUnk_00[0xE8];
/* E8 */
void func_02013394(void);
};
extern UnkStruct_02049a2c* data_02049a2c;
// non-matching
ARM void Entry(void) {
unk32* puVar1;
unk32* puVar2;
u32 uVar3;
unk32* puVar4;
REG_IME = 0x04000000;
do {
} while (REG_VCOUNT != 0x0);
func_02000a78();
func_0200093c(0, (u32*)data_027e0000, 0x4000);
func_0200093c(0, RAM_PALETTES, 0x400);
func_0200093c(0x200, RAM_OAM, 0x400);
func_02000950(gBuildInfo.mUnk_14);
func_020009fc();
puVar4 = gBuildInfo.mUnk_10;
puVar1 = gBuildInfo.mUnk_0C;
for (puVar2 = puVar1; puVar2 < puVar4; puVar2 = puVar2 + 0x1) {
*puVar2 = 0x0;
}
uVar3 = (u32)puVar1 & 0xFFFFFFE0;
do {
// inline asm?
// coproc_moveto_Data_Synchronization(0x0);
// coproc_moveto_Invalidate_Instruction_Cache_by_MVA(uVar3);
// coproc_moveto_Invalidate_Data_Cache_by_MVA(uVar3);
uVar3 = uVar3 + 0x20;
} while ((int)uVar3 < (int)puVar4);
UNK_027FFF9C = 0x0;
data_027e0000->mUnk_3FFC = func_01ffbd70;
func_0203b920();
func_02011da0();
func_0203cdb8();
main();
}
// non-matching
ARM void* func_0200093c(unk32 param1, u32* param2, unk32 param3) {
u32* p = param2 + param3;
while (param2 < p) {
*p++ = param1;
}
return param2;
}
void AutoloadCallback(void) {
}
void func_02000b60(void) {
}
BuildInfo gBuildInfo = {
.mUnk_00 = data_0204cde0,
.mUnk_04 = data_0204cdf8,
.mUnk_08 = data_02044dc0,
.mUnk_0C = data_02044dc0,
.mUnk_10 = (unk32*)0x02051AE0,
.mUnk_14 = NULL,
.mUnk_18 = 0x04027539,
.mUnk_1C = 0x04027539,
.mUnk_20 = 0xDEC00621,
"\xDE\xC0\x06![SDK+NINTENDO:BACKUP]",
"[SDK+MEI:libASR_V1.0.5-CW2.0-SDK4.0]"
};
// non-matching
void main(void) {
data_02049a2c->func_02013394();
}