diff --git a/asm/non_matching/bigGoron/sub_0806D138.inc b/asm/non_matching/bigGoron/sub_0806D138.inc deleted file mode 100644 index d519da48..00000000 --- a/asm/non_matching/bigGoron/sub_0806D138.inc +++ /dev/null @@ -1,23 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0806D15C @ =0x040000D4 - ldr r6, _0806D160 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_0806D146: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _0806D146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D15C: .4byte 0x040000D4 -_0806D160: .4byte 0x80000020 - .syntax divided diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index bf981b2d..ab9f4912 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -12,7 +12,16 @@ void sub_0806D41C(Entity* this); extern u8 gMapDataTopSpecial[]; -void sub_0806D138(u8* param_1, u8* param_2); +typedef struct { + u8 filler[0x40]; +} unk_0806D138param_1; + +typedef struct { + u8 filler[0x40]; + u8 filler2[0xC0]; +} unk_0806D138param_2; + +void sub_0806D138(unk_0806D138param_1* param_1, unk_0806D138param_2* param_2); extern void InitBiggoronTimer(void); @@ -101,13 +110,18 @@ void sub_0806D0F8(void) { void sub_0806D110(void) { u8* tmp = gMapDataTopSpecial; u8* tmp2 = tmp + 0x4000; - sub_0806D138(tmp, tmp2); + sub_0806D138((unk_0806D138param_1*)tmp, (unk_0806D138param_2*)tmp2); tmp += 0x800; tmp2 += 0x40; - sub_0806D138(tmp, tmp2); + sub_0806D138((unk_0806D138param_1*)tmp, (unk_0806D138param_2*)tmp2); } -ASM_FUNC("asm/non_matching/bigGoron/sub_0806D138.inc", void sub_0806D138(u8* param_1, u8* param_2)) +void sub_0806D138(unk_0806D138param_1* param_1, unk_0806D138param_2* param_2) { + u32 uVar1; + for (uVar1 = 0; uVar1 < 0x20; uVar1++, param_1++, param_2++) { + DMA_COPY(3, param_1, param_2, sizeof(*param_1), 16); + } +} ASM_FUNC("asm/non_matching/bigGoron/sub_0806D164.inc", void sub_0806D164(Entity* this))