mirror of
https://github.com/zeldaret/af.git
synced 2026-10-02 07:49:50 -04:00
6FD190 + 6FD410 OK (#235)
* func_800D94F0_jp * func_800D9514_jp * func_800D9524_jp * func_800D955C_jp * func_800D9618_jp * func_800D96A8_jp * func_800D96E8_jp * func_800D9700_jp * func_800D9750_jp * func_800D9760_jp * func_800D9770_jp * func_800D9788_jp * func_800D97A0_jp * func_800D97F8_jp * func_800D986C_jp * Split off 6FD410 based on bss * Migrate bss * add todo * headers * Better types for 6FD410 bss based on graph * Cleanup
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#include "6FD190.h"
|
||||
|
||||
#include "6FD410.h"
|
||||
#include "alignment.h"
|
||||
#include "code_variables.h"
|
||||
#include "libc64/malloc.h"
|
||||
#include "segment_symbols.h"
|
||||
#include "unk.h"
|
||||
|
||||
u16* B_80146060_jp[3];
|
||||
UNK_PTR B_8014606C_jp;
|
||||
uintptr_t B_80146070_jp;
|
||||
|
||||
uintptr_t func_800D94F0_jp(void) {
|
||||
B_80146070_jp = 0x80400000;
|
||||
B_80146070_jp &= ~0x3F;
|
||||
return B_80146070_jp;
|
||||
}
|
||||
|
||||
void func_800D9514_jp(void) {
|
||||
B_80146070_jp = 0;
|
||||
}
|
||||
|
||||
void func_800D9524_jp(void) {
|
||||
B_80146060_jp[0] = NULL;
|
||||
B_80146060_jp[1] = NULL;
|
||||
B_80146060_jp[2] = NULL;
|
||||
B_8014606C_jp = NULL;
|
||||
func_800D9770_jp();
|
||||
}
|
||||
|
||||
void func_800D955C_jp(s32 arg0) {
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
B_80146060_jp[0] = D_80000400;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
B_80146060_jp[1] = (u16*)ALIGN64((uintptr_t)malloc_r(0x2583F));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
B_8014606C_jp = (UNK_PTR)ALIGN64((uintptr_t)malloc(0x2583F));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
B_80146060_jp[2] = (u16*)ALIGN64((uintptr_t)malloc(0x2583F));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_800D9618_jp(s32 arg0) {
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
B_80146060_jp[0] = NULL;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
free(B_80146060_jp[1]);
|
||||
B_80146060_jp[1] = NULL;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
free(B_8014606C_jp);
|
||||
B_8014606C_jp = NULL;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
free(B_80146060_jp[2]);
|
||||
B_80146060_jp[2] = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_800D96A8_jp(void) {
|
||||
func_800D9788_jp();
|
||||
func_800D9618_jp(0);
|
||||
func_800D9618_jp(1);
|
||||
func_800D9618_jp(2);
|
||||
func_800D9618_jp(3);
|
||||
}
|
||||
|
||||
u16* func_800D96E8_jp(s32 arg0) {
|
||||
return B_80146060_jp[arg0];
|
||||
}
|
||||
|
||||
s32 func_800D9700_jp(void) {
|
||||
if (B_80146060_jp[2] != NULL) {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (B_80146060_jp[1] != NULL) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (B_80146060_jp[0] != NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UNK_PTR func_800D9750_jp(void) {
|
||||
return B_8014606C_jp;
|
||||
}
|
||||
|
||||
uintptr_t func_800D9760_jp(void) {
|
||||
return B_80146070_jp;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
#include "6FD410.h"
|
||||
|
||||
#include "libc/stdbool.h"
|
||||
|
||||
u32 B_80146080_jp;
|
||||
UNK_PTR B_80146084_jp;
|
||||
|
||||
void func_800D9770_jp(void) {
|
||||
B_80146080_jp = 0;
|
||||
B_80146084_jp = NULL;
|
||||
}
|
||||
|
||||
void func_800D9788_jp(void) {
|
||||
B_80146080_jp = 0;
|
||||
B_80146084_jp = NULL;
|
||||
}
|
||||
|
||||
UNK_PTR func_800D97A0_jp(u32 arg0) {
|
||||
if (arg0 < 0x25800) {
|
||||
if (B_80146080_jp == 0) {
|
||||
B_80146080_jp = 1;
|
||||
} else if (B_80146080_jp == 3) {
|
||||
B_80146080_jp = 4;
|
||||
return B_80146084_jp;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
UNK_PTR func_800D97F8_jp(u32 arg0) {
|
||||
UNK_PTR ret;
|
||||
u32 start = osGetCount();
|
||||
|
||||
while (true) {
|
||||
if ((osGetCount() - start) > ((s32)(OS_NSEC_TO_CYCLES(1333333334)))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = func_800D97A0_jp(arg0);
|
||||
if (ret != NULL) {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_800D986C_jp(s32 arg0) {
|
||||
if (arg0) {
|
||||
B_80146084_jp = NULL;
|
||||
B_80146080_jp = 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user