func_812008C8

This commit is contained in:
Diamond Lewis
2025-10-15 18:08:19 -05:00
parent cbddd22a5f
commit 5e16573ea5
2 changed files with 41 additions and 3 deletions

View File

@@ -581,13 +581,16 @@ typedef struct unk_D_8122B2C0 {
/* 0x05C5C */ char unk_5C5C[0x50];
/* 0x05CAC */ OSGbpakId gbpakId;
/* 0x05CFC */ OSPfs* pfs;
/* 0x05D00 */ char unk05D00[0x70];
/* 0x05D00 */ char unk05D00[0x64];
/* 0x05D64 */ u8* transferBuffer;
/* 0x05D68 */ u32 gbAddress;
/* 0x05D6C */ s32 transferSize;
/* 0x05D70 */ u32 unk_5D70[4];
/* 0x05D80 */ u32 unk_5D80[4];
/* 0x05D90 */ u32 unk_5D90[4];
/* 0x05DA0 */ u16 unk_5DA0;
/* 0x05DA2 */ u16 unk_5DA2;
/* 0x05DA4 */ char unk05DA3[0x20];
/* 0x05DA4 */ char unk05DA4[0x20];
/* 0x05DC4 */ u8 unk_5DC4;
/* 0x05DC5 */ u8 unk_5DC5;
/* 0x05DC6 */ char unk05DC6[0x2];

View File

@@ -256,7 +256,42 @@ s32 func_812005D8(unk_D_8122B2C0* arg0) {
s32 func_812006AC(unk_D_8122B2C0* arg0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812006AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_812008C8.s")
s32 func_812008C8(unk_D_8122B2C0* arg0, s32 arg1) {
s32 temp_v0;
s32 var_s0;
s32 var_s1;
u8* var_s3;
s32 var_v0;
s32 var_v1;
u32 var_s2;
var_v0 = func_812005D8(arg0);
var_v1 = var_v0;
var_s3 = arg0->transferBuffer;
var_s2 = arg0->gbAddress;
var_s1 = arg0->transferSize;
while ((var_v0 == 0) && (var_s1 != 0)) {
var_v0 = func_812002BC(arg0, var_s2 >> 0xD);
var_v1 = var_v0;
if (var_v0 == 0) {
temp_v0 = var_s2 & 0x1FFF;
if ((u32) (temp_v0 + var_s1) >= 0x2001U) {
var_s0 = 0x2000 - temp_v0;
} else {
var_s0 = var_s1;
}
var_v0 = osGbpakReadWrite(&arg0->pfs, arg1, (temp_v0 | 0xA000) & 0xFFFF, var_s3, var_s0);
var_v1 = var_v0;
var_s3 += var_s0;
var_s1 -= var_s0;
var_s2 = (var_s2 + 0x2000) & ~0x1FFF;
}
}
if (var_v0 == 0) {
var_v1 = func_8120019C(arg0);
}
return var_v1;
}
s32 func_812009D0(unk_func_812009D0* arg0) {
u8* var_s1;