From a91cbe6bf11bfd0ded995a48d7f89c35928b228f Mon Sep 17 00:00:00 2001 From: FantasmaShy Date: Thu, 10 Jul 2025 18:01:41 +0000 Subject: [PATCH] fragment30 (#202) * fragment30 humble first try * fragment30 humble first try * fragment30 fix * fragment30 fix * add to gitignore * delete vtxdis binary * func_8001A1D0.s * func_8001A250 * func_8001A258 * formatting --- .gitignore | 1 + src/1AB70.c | 43 +++++++++++++++++++++++++++++++--- src/1AB70.h | 1 + src/22630.c | 2 +- src/fragments/30/fragment30.c | 10 ++++++-- src/fragments/30/fragment30.h | 6 +++++ tools/vtxdis | Bin 14552 -> 0 bytes 7 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 src/fragments/30/fragment30.h delete mode 100755 tools/vtxdis diff --git a/.gitignore b/.gitignore index 505b924..b3360f3 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ ctx.c.m2c .vscode/* !.vscode/c_cpp_properties.json +tools/vtxdis diff --git a/src/1AB70.c b/src/1AB70.c index d97b7d0..54ebe52 100644 --- a/src/1AB70.c +++ b/src/1AB70.c @@ -79,11 +79,48 @@ unk_func_8001A024* func_8001A024(unk_D_86002F58_004_000_010* arg0, s16 arg1, s16 return temp_v0; } -#pragma GLOBAL_ASM("asm/us/nonmatchings/1AB70/func_8001A1D0.s") +void func_8001A1D0(unk_func_8001A024* arg0, unk_D_86002F58_004_000_010* arg1, unk_D_80068BB0* arg2) { + s32 i; -#pragma GLOBAL_ASM("asm/us/nonmatchings/1AB70/func_8001A250.s") + arg0->unk_04 = arg1; + arg0->unk_14 = arg2; -#pragma GLOBAL_ASM("asm/us/nonmatchings/1AB70/func_8001A258.s") + for (i = 0; i < arg0->unk_01; ++i) { + func_80006414(arg0->unk_08[i].unk_0C, arg2); + } +} + +void func_8001A250(unk_func_8001A024* arg0, unk_D_8006FF00* arg1) { + arg0->unk_18 = arg1; +} + +void func_8001A258(unk_func_8001A024* arg0) { + // s32 var_s0; + s32 i; + u16 w; + u16 h; + unk_func_8001A024_008* tempImg_p; + unk_D_80068BB0* tempDepth_p; + + if (arg0->unk_00 & 1) { + func_80019CA8(arg0->unk_04); + func_8001BCF0(arg0->unk_10); + } + + arg0->unk_00 = 0; + arg0->unk_02 = 0; + arg0->unk_03 = -1; + + for (i = 0; i < arg0->unk_01; ++i) { + tempImg_p = &arg0->unk_08[i]; + tempDepth_p = tempImg_p->unk_0C; + w = tempDepth_p->width; + h = tempDepth_p->height; + tempImg_p->unk_00 = 0; + arg0->unk_08[i].unk_14.raw = 0; + bzero(arg0->unk_08[i].unk_0C->img_p, w * h * 2); + } +} #ifdef NON_MATCHING void func_8001A324(unk_func_8001A024* arg0, s32 arg1, s32 arg2, u16 arg3) { diff --git a/src/1AB70.h b/src/1AB70.h index 03024be..45912e3 100644 --- a/src/1AB70.h +++ b/src/1AB70.h @@ -77,6 +77,7 @@ typedef struct unk_D_84B25A28 { unk_func_8001A024* func_8001A024(unk_D_86002F58_004_000_010*, s16, s16, s16); void func_8001A1D0(unk_func_8001A024*, unk_D_86002F58_004_000_010*, unk_D_80068BB0*); void func_8001A250(unk_func_8001A024*, unk_D_8006FF00*); +void func_8001A258(unk_func_8001A024*); void func_8001A324(unk_func_8001A024*, s32, s32, u16); void func_8001A46C(unk_func_8001A024*, s32, unk_func_80026268_arg0*, s32); void func_8001AA18(unk_func_8001A024*, s32, unk_D_84B25A28*); diff --git a/src/22630.c b/src/22630.c index f25fe0d..519a203 100644 --- a/src/22630.c +++ b/src/22630.c @@ -23,7 +23,7 @@ void func_80021A68(u8* arg0, s32 arg1) { void func_80021A78(u8* arg0, s32 arg1) { arg0[0] = (arg1 >> 0x10) & 0xFF; arg0[1] = (arg1 >> 8) & 0xFF; - arg0[2] = (arg1)&0xFF; + arg0[2] = (arg1) & 0xFF; } char* func_80021A90(char* arg0, char* arg1) { diff --git a/src/fragments/30/fragment30.c b/src/fragments/30/fragment30.c index 7eaf735..247428a 100644 --- a/src/fragments/30/fragment30.c +++ b/src/fragments/30/fragment30.c @@ -1,3 +1,9 @@ -#include "global.h" +#include "src/29BA0.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/30/fragment30/func_88A00020.s") +#include "fragment30.h" + +// unused wrapper to load the pokelab? +s32 func_88A00020(UNUSED s32 arg0, UNUSED s32 arg1) { + FRAGMENT_LOAD_AND_CALL2(fragment22, 1, 0); + return 0x25; +} diff --git a/src/fragments/30/fragment30.h b/src/fragments/30/fragment30.h new file mode 100644 index 0000000..4c227ce --- /dev/null +++ b/src/fragments/30/fragment30.h @@ -0,0 +1,6 @@ +#ifndef _FRAGMENT30_H_ +#define _FRAGMENT30_H_ + +s32 func_88A00020(UNUSED s32 arg0, UNUSED s32 arg1); + +#endif // _FRAGMENT31_H_ \ No newline at end of file diff --git a/tools/vtxdis b/tools/vtxdis deleted file mode 100755 index 838b6cdeca3a54cd0b896c0dbe285800b8b3141e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14552 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 ZKE+DKNx5xHVx4bO4zFiLC3LakKLD|tT7Cck