fragment28 (#168)
Some checks are pending
C/C++ CI / build (push) Waiting to run

This commit is contained in:
Maide 2025-03-05 09:31:47 +00:00 committed by GitHub
parent 0afcaf376d
commit 157454bf38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 10735 additions and 78 deletions

View File

@ -75,4 +75,5 @@
#define ASSET_LOAD2(rom, arg0, arg1) (\
func_800044F4(rom##_ROM_START, rom##_ROM_END, arg0, arg1) \
)
#endif

View File

@ -539,6 +539,8 @@ extern u8 _70D3A0_ROM_END[];
extern u8 D_70110[];
extern u8 D_70290[];
extern u8 D_70B10[];
extern u8 _6EB340_ROM_START[];
extern u8 _6EB340_ROM_END[];
extern u8 D_124570[];

View File

@ -164,6 +164,7 @@ extern u8 D_4007B60[];
extern u8 D_4007BA8[];
extern u8 D_4004448[];
extern u8 D_4004FB8[];
extern u8 D_4003AD0[];
@ -197,7 +198,8 @@ extern struct unk_D_86002F58_004_000_000 D_800AC858;
extern struct unk_D_86002F58_004_000* D_8006F09C;
typedef struct unk_D_8006FF00 {
/* 0x00 */ char unk_00[0x4];
/* 0x00 */ u8 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ char* name;
/* 0x08 */ char unk_08[0x4];
/* 0x0C */ u8 unk_0C;
@ -282,4 +284,12 @@ typedef struct unk_D_70B10 {
extern unk_func_88500020 D_800758E0;
extern unk_func_88500020 D_800758F0;
typedef struct unk_D_8007596C {
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 unk_02;
} unk_D_8007596C; // size = 0x4
extern unk_D_8007596C D_8007596C[151];
extern u32 D_8C000000; // start of some rom area
#endif

View File

@ -388,3 +388,4 @@ D_04006298 = 0x04006298;
D_040065C0 = 0x040065C0;
D_4004448 = 0x4004448;
D_4004FB8 = 0x4004FB8;
D_4003AD0 = 0x4003AD0;

View File

@ -36,3 +36,4 @@ D_04006298 = 0x04006298;
D_040065C0 = 0x040065C0;
D_4004448 = 0x4004448;
D_4004FB8 = 0x4004FB8;
D_4003AD0 = 0x4003AD0;

View File

@ -26,10 +26,15 @@ typedef struct unk_func_8001B1FC {
/* 0x2C */ unk_D_80068BB0* unk_2C;
} unk_func_8001B1FC; // size = 0x30
s32 func_8001A024(unk_D_86002F58_004_000_010*, s32, s32, s32);
void func_8001A324(s32, s32, s32, s32);
void func_8001ABAC(s32, s32);
void* func_8001AFD8(s32, s32);
void func_8001B058(void);
void func_8001B0DC(unk_func_88201DA0_034_008*, s32, s32);
unk_func_8001B1FC* func_8001B1FC(unk_D_86002F58_004_000_010*, s32, s32, s32, s32, s32, s32, u8*);
void func_8001B2D8(unk_func_8001B1FC* arg0, unk_func_80026268_arg0* arg1, s32 arg2);
void func_8001B480(void*, s32, s32);
u8* func_8001B9D4(void*);
#endif // _1AB70_H_

View File

@ -150,11 +150,15 @@ u8 func_80024F68(s32);
s32 func_80024FB0(s32 arg0);
s32 func_80025084(s32);
s32 func_8002513C(s32);
char* func_800251B0(s32, s8*);
char* func_800251B0(s32, char*);
s32 func_80025370(s32);
s32 func_8002539C(s32);
void func_80025540(s32);
s32 func_8002564C(s32, s32);
void func_800256F4(s32, s32, s32);
s32 func_80025840(s32);
s32 func_80025988(s32);
s32 func_80025AD0(s32);
void func_80026E4C(s32);
#endif // _6BC0_H_

View File

@ -1,4 +1,4 @@
#include "global.h"
#include "37370.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/37370/func_80036770.s")

8
src/37370.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _37370_H_
#define _37370_H_
#include "global.h"
void func_80036770(s32);
#endif // _37370_H_

View File

@ -23,6 +23,7 @@ typedef struct amConfig {
void amCreateAudioMgr(ALSynConfig*, amConfig*, u32, s32, s32);
OSTask* func_8003CADC(OSTask*);
void __clearAudioDMA(void);
void func_8003D2B8(s32);
void func_8003D32C(void);
s32 func_8003D494(void);
s32 func_8003D4A0(s32);

View File

@ -1706,8 +1706,8 @@ s32 func_88506CE4(unk_func_88200FA0_030_030* arg0) {
return -1;
}
void func_88506DCC(unk_func_8821421C_038_034* arg0, s32 arg1, s32 arg2, void (*arg3)(), s32 arg4, s32 arg5, s32 arg6,
MemoryPool* arg7) {
void func_88506DCC(unk_func_8821421C_038_034* arg0, s32 arg1, s32 arg2, unk_func_88200FA0_030_030_040 arg3, s32 arg4,
s32 arg5, s32 arg6, MemoryPool* arg7) {
func_885060BC(&arg0->unk_00, arg1, arg2, arg3, arg4, arg5, arg6, 1, arg7);
arg0->unk_00.unk_00.unk_1C = func_88507018;
arg0->unk_00.unk_00.unk_18 = func_8850734C;

View File

@ -20,6 +20,7 @@ struct unk_func_882025E0;
struct unk_func_8850CD44;
struct unk_func_8830867C_02C_048_000;
struct unk_func_8850BD40;
struct unk_func_88200FA0_030_030;
typedef s32 (*unk_func_88001300_018)(struct unk_func_88001300_000*, s32, s32);
typedef s32 (*unk_func_88001300_01C)(struct unk_func_88001300_000*);
@ -201,7 +202,7 @@ typedef struct unk_func_88503298 {
/* 0x30 */ unk_func_8850878C* unk_30;
} unk_func_88503298; // size = 0x34
typedef void (*unk_func_88200FA0_030_030_040)();
typedef void (*unk_func_88200FA0_030_030_040)(s32, s32, char*, s32, s32, struct unk_func_88200FA0_030_030*);
typedef struct unk_func_88200FA0_030_030 {
/* 0x00 */ unk_func_88001300_000 unk_00;
@ -699,11 +700,12 @@ typedef struct unk_func_8830867C_048_048 {
} unk_func_8830867C_048_048; // size = 0x28
typedef void (*func88500020)(unk_func_88500020*, s32, s32);
typedef void (*func88500338)(unk_func_88500020* arg0, s32 arg1, s32 arg2, s32 arg3);
typedef void (*func88500668)(unk_func_882025E0*, s32);
typedef void (*func8850068C)(unk_func_88001300_000_000*, unk_func_88001300_000_000*);
typedef void (*func885007CC)(unk_func_88001300_000*, s32);
typedef void (*func88500828)(unk_func_88001300*, s32, s32);
typedef void (*func885008C4)(unk_func_88001300*);
typedef void (*func88500828)(unk_func_88001300_000*, s32, s32);
typedef void (*func885008C4)(unk_func_88001300_000*);
typedef void (*func8850093C)(s32, s32);
typedef void (*func88500994)(unk_func_88500994*, s32, s32);
typedef void (*func88500A3C)(unk_func_88500994*, unk_func_88001300_000*);
@ -775,6 +777,7 @@ typedef void (*func8850CD44)(unk_func_8850CD44*, s32, MemoryPool*);
typedef void (*func8850CF00)(unk_func_8850CD44*, Controller*);
void func_88500020(unk_func_88500020*, s32, s32);
void func_88500338(unk_func_88500020* arg0, s32 arg1, s32 arg2, s32 arg3);
void func_88500668(unk_func_88001300_000_000*, s32);
void func_8850068C(unk_func_88001300_000_000*, unk_func_88001300_000_000*);
void func_885007CC(unk_func_88001300_000*, s32);
@ -844,7 +847,7 @@ s32 func_88506438(unk_func_88200FA0_030_030*, s32, s32);
s32 func_885065E0(unk_func_88200FA0_030_030*, Controller*);
void func_88506BFC(unk_func_88200FA0_030_030*, s32);
s32 func_88506CE4(unk_func_88200FA0_030_030*);
void func_88506DCC(unk_func_8821421C_038_034*, s32, s32, void (*)(), s32, s32, s32, MemoryPool*);
void func_88506DCC(unk_func_8821421C_038_034*, s32, s32, unk_func_88200FA0_030_030_040, s32, s32, s32, MemoryPool*);
void func_88506EE4(unk_func_8820BE14_02C_038*, unk_func_88200FA0_030_038*);
void func_88506F1C(unk_func_8830867C_02C_034*, unk_func_88200FA0_030_038*, MemoryPool*);
void func_88506F50(unk_func_8821421C_038_034*, unk_func_8821421C_038_050**);

View File

@ -0,0 +1,195 @@
#ifndef _FRAGMENT28_H_
#define _FRAGMENT28_H_
#include "global.h"
#include "src/fragments/26/fragment26.h"
typedef struct unk_func_888044BC_038_02C_02C_000 {
/* 0x00 */ u8 unk_00;
} unk_func_888044BC_038_02C_02C_000; // size >= 0x4
typedef struct unk_func_888044BC_038_02C_02C {
/* 0x00 */ unk_func_888044BC_038_02C_02C_000** unk_00;
/* 0x04 */ char unk04[0x4];
/* 0x08 */ s32 unk_08;
} unk_func_888044BC_038_02C_02C; // size >= 0x0C
typedef struct unk_func_888044BC_038_02C_044 {
/* 0x00 */ unk_func_88001300_000 unk_00;
} unk_func_888044BC_038_02C_044; // size >= 0x2C
typedef struct unk_func_888044BC_038_02C_000 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_038_02C_02C* unk_2C;
/* 0x30 */ char unk30[0x4];
/* 0x34 */ u16* unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s16 unk_3C;
/* 0x3E */ s16 unk_3E;
/* 0x40 */ char unk40[0x4];
/* 0x44 */ unk_func_888044BC_038_02C_044* unk_44;
/* 0x48 */ char unk48[0x2];
/* 0x4A */ s16 unk_4A;
/* 0x4C */ char unk4C[0x4];
/* 0x50 */ unk_func_88001300_000_010 unk_50;
/* 0x54 */ s16 unk_54;
/* 0x58 */ s32 unk_58;
/* 0x5C */ s32 unk_5C;
/* 0x60 */ char unk60[0xC];
/* 0x6C */ s32 unk_6C;
} unk_func_888044BC_038_02C_000; // size = 0x70
typedef struct unk_func_888044BC_038_02C {
/* 0x00 */ unk_func_888044BC_038_02C_000 unk_00;
/* 0x70 */ unk_func_88205880_A030 unk_70;
/* 0x7C */ unk_func_88205880_A030 unk_7C;
/* 0x88 */ s32 unk_88;
/* 0x8C */ s32 unk_8C;
} unk_func_888044BC_038_02C; // size = 0x90
typedef struct unk_func_888044BC_038 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_038_02C* unk_2C;
} unk_func_888044BC_038; // size = 0x30
typedef struct unk_func_888044BC_03C_02C {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ char unk_30[8];
/* 0x38 */ unk_func_88200FA0_030_038* unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
} unk_func_888044BC_03C_02C; // size = 0x48
typedef struct unk_func_888044BC_03C {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_03C_02C* unk_2C;
} unk_func_888044BC_03C; // size = 0x30
typedef struct unk_func_888044BC_040_030 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ s32 unk_2C;
} unk_func_888044BC_040_030; // size = 0x30
typedef struct unk_func_888044BC_040 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ char unk2C[0x4];
/* 0x30 */ unk_func_888044BC_040_030* unk_30;
/* 0x34 */ unk_func_88200FA0_030_030* unk_34;
/* 0x38 */ unk_func_88200FA0_030_038 unk_38;
} unk_func_888044BC_040; // size = 0x44
typedef struct unk_func_888044BC_044_02C {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ s32 unk_2C;
} unk_func_888044BC_044_02C; // size = 0x30
typedef struct unk_func_888044BC_044 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_044_02C* unk_2C;
} unk_func_888044BC_044; // size = 0x30
typedef struct unk_func_888044BC_048 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_8850878C* unk_2C;
} unk_func_888044BC_048; // size = 0x30
typedef struct unk_func_888044BC_04C_02C {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ s32 unk_2C;
} unk_func_888044BC_04C_02C; // size = 0x30
typedef struct unk_func_888044BC_04C {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_04C_02C* unk_2C;
} unk_func_888044BC_04C; // size = 0x30
typedef struct unk_func_888044BC_050 {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_888044BC_038_02C* unk_2C;
/* 0x30 */ s32 unk_30;
} unk_func_888044BC_050; // size = 0x34
typedef struct unk_func_888044BC {
/* 0x00 */ unk_func_88001300_000 unk_00;
/* 0x2C */ unk_func_88500994* unk_2C;
/* 0x30 */ unk_func_88500994* unk_30;
/* 0x34 */ unk_func_88001300_02C* unk_34;
/* 0x38 */ unk_func_888044BC_038* unk_38;
/* 0x3C */ unk_func_888044BC_03C* unk_3C;
/* 0x40 */ unk_func_888044BC_040* unk_40;
/* 0x44 */ unk_func_888044BC_044* unk_44;
/* 0x48 */ unk_func_888044BC_048* unk_48;
/* 0x4C */ unk_func_888044BC_04C* unk_4C;
/* 0x50 */ unk_func_888044BC_050* unk_50;
/* 0x54 */ unk_func_888044BC_050* unk_54;
} unk_func_888044BC; // size = 0x58
void func_88800020(s32 arg0, s32 arg1, s32 arg2);
s32 func_888002F8(unk_func_888044BC_050* arg0, s32 arg1, s32 arg2);
void func_88800A3C(s32 arg0, s32 arg1, char* arg2, UNUSED s32 arg3, s32 arg4, unk_func_888044BC_038_02C* arg5);
void func_88800E20(unk_func_888044BC_038_02C* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, MemoryPool* arg5);
s32 func_88801030(unk_func_888044BC_038_02C* arg0);
void func_88801054(unk_func_888044BC_038_02C* arg0);
void func_88801164(unk_func_888044BC_038* arg0, s32 arg1, s32 arg2, s32 arg3, MemoryPool* arg4);
s32 func_88801214(unk_func_888044BC_038* arg0, Controller* arg1);
void func_8880123C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, Color_RGBA8 arg4);
void func_888018E0(unk_func_888044BC_03C_02C* arg0, s32 arg1, s32 arg2);
void func_8880193C(unk_func_888044BC_03C_02C* arg0, s32 arg1);
void func_888019A4(unk_func_888044BC_03C_02C* arg0, s32 arg1, s32 arg2);
void func_88801CB4(unk_func_888044BC_03C* arg0, s32 arg1, s32 arg2, s32 arg3, MemoryPool* arg4);
void func_88801DB8(unk_func_888044BC_040_030* arg0, s32 arg1, s32 arg2);
s32 func_88801E1C(unk_func_888044BC_040_030* arg0, s32 arg1, s32 arg2);
void func_88802228(unk_func_888044BC_040_030* arg0);
void func_88802238(s32 arg0, s32 arg1, char* arg2, UNUSED s32 arg3, UNUSED s32 arg4, unk_func_88200FA0_030_030* arg5);
void func_8880231C(unk_func_888044BC_040* arg0, s32 arg1, s32 arg2, MemoryPool* arg3);
s32 func_88802598(unk_func_888044BC_040* arg0, Controller* arg1);
void func_888025C0(unk_func_888044BC_044_02C* arg0, s32 arg1, s32 arg2);
void func_8880261C(unk_func_888044BC_044_02C* arg0, s32 arg1);
void func_88802624(s32 arg0, s32 arg1, s32 arg2);
void func_888026D8(s32 arg0, s32 arg1, s32 arg2);
s32 func_8880276C(unk_func_888044BC_044_02C* arg0, s32 arg1, s32 arg2);
void func_88802B88(unk_func_888044BC_044* arg0, s32 arg1, s32 arg2, MemoryPool* arg3);
void func_88802C80(unk_func_888044BC_048* arg0, s32 arg1, s32 arg2, MemoryPool* arg3);
void func_88802DAC(unk_func_888044BC_048* arg0, s32 arg1, s32 arg2);
void func_88802E68(unk_func_888044BC_04C_02C* arg0, s32 arg1, s32 arg2);
void func_88802EC4(unk_func_888044BC_04C_02C* arg0, s32 arg1);
s32 func_88802F10(unk_func_888044BC_04C_02C* arg0, s32 arg1, s32 arg2);
void func_8880316C(unk_func_888044BC_04C* arg0, s32 arg1, s32 arg2, MemoryPool* arg3);
void func_888031FC(unk_func_888044BC* arg0, s32 arg1, s32 arg2, u8* arg3, MemoryPool* arg4);
s32 func_88803614(void);
u8 func_888038E0(void);
void func_88803BCC(u8* arg0, s32 arg1);
s32 func_88803C74(void);
s32 func_88803ECC(void);
s32 func_88803FB0(u8 arg0);
void func_88804020(void);
void func_8880412C(void);
s32 func_88804190(void);
s32 func_88804218(u8 arg0);
void func_88804288(void);
s32 func_8880431C(void);
void func_88804370(void);
s32 func_888044BC(UNUSED s32 arg0, UNUSED s32 arg1);
s32 func_888047D0(s32 arg0);
s32 func_88804B1C(s32 arg0);
void func_88804E68(void);
void func_88804EC8(void);
void func_8880554C(void);
Gfx* func_88805960(Gfx* arg0, s16 arg1, s16 arg2);
Gfx* func_88805AEC(Gfx* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
void func_888069B0(void);
void func_88806EAC(void);
void func_88806EC8(void);
void func_88806F20(Vec3f* arg0, Vec3f* arg1);
void func_88807090(void);
s32 func_888071C8(s32 arg0);
s32 func_8880725C(UNUSED u8 arg0);
s32 func_88807AC0(void);
void func_88807D04(s32 arg0, MainPoolState* arg1, UNUSED s32 arg2, s32 arg3, s32 arg4, char* arg5, char** arg6);
void func_8880812C(void);
#endif // _FRAGMENT28_H_

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,12 @@ typedef struct unk_D_800A7450 {
/* 0x10 */ char unk10[0x4];
} unk_D_800A7450; // size >= 0x14
typedef struct unk_func_80007444_018 {
/* 0x00 */ char unk00[0x8];
/* 0x08 */ s32 unk_08;
/* 0x0C */ char unk0C[0x4];
} unk_func_80007444_018; // size = 0x10
typedef struct unk_func_80007444 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
@ -31,7 +37,7 @@ typedef struct unk_func_80007444 {
/* 0x13 */ u8 unk_13;
/* 0x14 */ u16 unk_14;
/* 0x16 */ s8 unk_16;
/* 0x18 */ void* unk_18[3];
/* 0x18 */ unk_func_80007444_018* unk_18[3];
} unk_func_80007444; // size = 0x24
void func_800069F0(void);

View File

@ -3,6 +3,7 @@
import sys
from pathlib import Path
from struct import *
import find_sym
STRUCTS = {}
STRUCT_TYPEDEFS = {}
@ -668,9 +669,9 @@ def dump(offset, type_name):
exit()
out = dump_data(offset, type_name, counts)
return out
if __name__ == "__main__":
out = dump(sys.argv[1], sys.argv[2])
rom_offset = find_sym.find(sys.argv[1])
out = dump(rom_offset["rom"], sys.argv[2])
print(out)

15
tools/euc_jp.py Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env python3
import codecs
import sys
from pathlib import Path
import find_sym
if len(sys.argv) == 2:
print(codecs.decode(sys.argv[1].replace("0x", ""), "hex").decode("euc-jp"))
else:
offset = find_sym.find(sys.argv[2])["rom"]
data = (Path(sys.argv[0]).absolute().parent / "../baseroms/us/baserom.z64").read_bytes()
s = data[offset:data.find(b"\x00", offset)]
print(s.decode("euc-jp"))

View File

@ -1269,11 +1269,13 @@
- [0x214900, textbin, fragments/28/fragment28_header]
- [0x214920, c, fragments/28/fragment28_214920]
- [0x2190D0, c, fragments/28/fragment28_2190D0]
- [0x21CA50, data, fragments/28/fragment28_data]
- [0x23AF80, rodata, fragments/28/fragment28_rodata_23AF80]
- [0x23AFE0, rodata, fragments/28/fragment28_rodata_23AFE0]
- [0x21CA50, .data, fragments/28/fragment28_214920]
- [0x234B50, .data, fragments/28/fragment28_2190D0]
- [0x23AF80, .rodata, fragments/28/fragment28_214920]
- [0x23AFE0, .rodata, fragments/28/fragment28_2190D0]
- {vram: 0x888267A0, type: bss, name: fragments/28/fragment28_bss}
- {vram: 0x888267A0, type: .bss, name: fragments/28/fragment28_214920}
- {vram: 0x888269C0, type: .bss, name: fragments/28/fragment28_2190D0}
- name: fragment28_relocs
type: code