mirror of
https://github.com/zeldaret/st
synced 2026-05-29 08:42:59 -04:00
started main functions
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user