This commit is contained in:
Kelebek1
2024-09-23 15:36:17 +01:00
parent 49e92c6cc4
commit fd09ab2408
6 changed files with 136 additions and 15 deletions
+1
View File
@@ -483,5 +483,6 @@ extern u32 fragment1_relocs_ROM_END[];
extern u8 _675FA0_ROM_START[];
extern u8 _675FA0_ROM_END[];
extern u8 _783760_ROM_START[];
#endif // _SECTIONS_H_
+126 -7
View File
@@ -1,15 +1,134 @@
#include "2E110.h"
#include "src/3FB0.h"
#include "src/memory.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D510.s")
static BinArchive* D_800AF740;
static char** D_800AF744;
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D5AC.s")
void func_8002D510(void) {
s32 i;
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D5D4.s")
D_800AF740 = func_800044F4(_783760_ROM_START, NULL, 1, 0);
D_800AF744 = main_pool_alloc(0xA8, 0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D600.s")
for (i = 0; i < 42; i++) {
D_800AF744[i] = NULL;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D628.s")
char* func_8002D5AC(s32 file_number) {
return (char*)func_8000484C(D_800AF740, file_number);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D7C0.s")
void func_8002D5D4(u32 arg0, s32 arg1) {
if ((arg0 >= 0x14) && (arg0 < 0x2A)) {
D_800AF744[arg0] = arg1;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/2E110/func_8002D80C.s")
void func_8002D600(u32 arg0, s32 arg1) {
if ((arg0 != 0) && (arg0 < 0xA)) {
D_800AF744[arg0] = arg1;
}
}
void func_8002D628(char* arg0, u32 arg1, s8* arg2) {
u32 i;
s32 var_s2;
s32 temp_v0;
char sp58[12];
s8* var_s4;
char* sp54;
u32 var_s3;
var_s2 = 0;
var_s3 = 0;
sp54 = var_s4;
var_s4 = sp54;
i = 0;
while (i < arg1 - 1u) {
switch (var_s2) {
case 0:
temp_v0 = *arg2++;
if (temp_v0 == 0) {
goto end;
}
if (temp_v0 == 0x23) {
temp_v0 = *arg2++;
temp_v0 -= 0x30;
temp_v0 = (*arg2++ + (temp_v0 * 10)) - 0x30;
if ((temp_v0 > 0) && (temp_v0 < 0xA)) {
sprintf(&sp58, "%d", D_800AF744[temp_v0]);
var_s4 = &sp58;
var_s2 = 1;
continue;
}
if ((temp_v0 >= 0x14) && (temp_v0 < 0x2A)) {
if (D_800AF744[temp_v0] != 0) {
var_s4 = D_800AF744[temp_v0];
var_s2 = 1;
}
continue;
}
} else {
*arg0++ = temp_v0;
var_s3++;
i++;
}
break;
case 1:
temp_v0 = *var_s4++;
if (temp_v0 == 0) {
var_s2 = 0;
} else {
*arg0++ = temp_v0;
var_s3++;
i++;
}
break;
}
}
sp54 = var_s4;
end:
*arg0++ = 0;
}
char* func_8002D7C0(char* arg0, s32 arg1, char** arg2, s32 file_number) {
char* sp1C;
char* sp18 = (u32)arg2 + (u32)arg2[file_number + 1];
if (arg0 == NULL) {
sp1C = sp18;
} else {
sp1C = arg0;
func_8002D628(arg0, arg1, sp18);
}
return sp1C;
}
s32 func_8002D80C(s8* arg0) {
s32 last_chr = 0;
s32 line_count = 0;
s32 chr = *arg0++;
while (chr != 0) {
last_chr = chr;
if (chr == '\n') {
line_count++;
}
chr = *arg0++;
}
if (last_chr != '\n') {
line_count++;
}
return line_count;
}
+4 -4
View File
@@ -4,10 +4,10 @@
#include "global.h"
void func_8002D510(void);
s32 func_8002D5AC(s32);
void func_8002D600(s32, s16);
char* func_8002D7C0(char* arg0, s32 arg1, s32 arg2, s32 arg3);
s32 func_8002D80C(char*);
char* func_8002D5AC(s32);
void func_8002D600(u32, s32);
char* func_8002D7C0(char* arg0, s32 arg1, char** arg2, s32 arg3);
s32 func_8002D80C(s8*);
#endif // _2E110_H_
+1 -1
View File
@@ -17,7 +17,7 @@ extern u32 D_87806670[];
extern u32 D_878065B0[];
extern u32 D_87806730[];
s32 D_87806330 = 0;
char** D_87806330 = NULL;
static s32 D_8780FA20;
static s32 D_8780FA24;
+1 -1
View File
@@ -8,7 +8,7 @@ typedef struct unk_func_87801684 {
/* 0x04 */ s16 unk_04;
} unk_func_87801684; // size = 0x8
extern s32 D_87806330;
extern char** D_87806330;
extern s16 D_87806338;
extern u32* D_8780633C[];
extern u32* D_8780634C[];
+3 -2
View File
@@ -419,7 +419,7 @@
- [0x7CD40, .rodata, 26820]
- [0x7CEC0, .rodata, 29BA0]
- [0x7CFD0, .rodata, 2C1C0]
- [0x7D030, rodata, rom_rodata_7D030]
- [0x7D030, .rodata, 2E110]
- [0x7D040, rodata, rom_rodata_7D040]
- [0x7D0F0, .rodata, 30640]
- [0x7D110, rodata, rom_rodata_7D110]
@@ -497,7 +497,8 @@
- {vram: 0x800AC880, type: .bss, name: 20330}
- {vram: 0x800AC890, type: bss, name: unk_bss_11}
- {vram: 0x800AE520, type: .bss, name: 29BA0}
- {vram: 0x800AF740, type: bss, name: unk_bss_7}
- {vram: 0x800AF740, type: .bss, name: 2E110}
- {vram: 0x800AF750, type: bss, name: unk_bss_7}
- {vram: 0x800B32A0, type: .bss, name: 373A0}
- {vram: 0x800FC7A0, type: .bss, name: 38BB0}
- {vram: 0x800FC820, type: bss, name: unk_bss_12}