From 515f0871bc651cfea8fc528812dbaee97d19a621 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Thu, 25 May 2023 07:59:14 -0700 Subject: [PATCH] more decomp --- asm/code_807FCD4.s | 373 --------------------------------------- include/dungeon_entity.h | 2 +- src/code_8083288.c | 188 +++++++++++++++++++- 3 files changed, 187 insertions(+), 376 deletions(-) diff --git a/asm/code_807FCD4.s b/asm/code_807FCD4.s index 6a7bb9261..c20152141 100644 --- a/asm/code_807FCD4.s +++ b/asm/code_807FCD4.s @@ -6225,377 +6225,4 @@ _08083002: bx r0 thumb_func_end sub_8082FE0 - thumb_func_start nullsub_98 -nullsub_98: - bx lr - thumb_func_end nullsub_98 - - thumb_func_start sub_808300C -sub_808300C: - push {lr} - movs r2, 0x8 - bl sub_8082FA8 - pop {r0} - bx r0 - thumb_func_end sub_808300C - - thumb_func_start sub_8083018 -sub_8083018: - push {lr} - sub sp, 0xC - mov r1, sp - movs r2, 0x8 - bl sub_8082FE0 - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x8] - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_8083018 - - thumb_func_start sub_8083030 -sub_8083030: - push {lr} - sub sp, 0x4 - mov r2, sp - strh r1, [r2] - mov r1, sp - movs r2, 0x2 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8083030 - - thumb_func_start sub_8083048 -sub_8083048: - push {lr} - sub sp, 0x4 - mov r2, sp - strh r1, [r2] - mov r1, sp - movs r2, 0x2 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8083048 - - thumb_func_start sub_8083060 -sub_8083060: - push {lr} - sub sp, 0x4 - mov r2, sp - strb r1, [r2] - mov r1, sp - movs r2, 0x1 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8083060 - - thumb_func_start sub_8083078 -sub_8083078: - push {lr} - sub sp, 0x4 - str r1, [sp] - mov r1, sp - movs r2, 0x4 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8083078 - - thumb_func_start sub_808308C -sub_808308C: - push {lr} - sub sp, 0x4 - str r1, [sp] - mov r1, sp - movs r2, 0x4 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808308C - - thumb_func_start sub_80830A0 -sub_80830A0: - push {lr} - sub sp, 0x4 - str r1, [sp] - mov r1, sp - movs r2, 0x4 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80830A0 - - thumb_func_start sub_80830B4 -sub_80830B4: - push {lr} - sub sp, 0x4 - adds r3, r0, 0 - lsls r1, 24 - movs r2, 0 - cmp r1, 0 - beq _080830C4 - movs r2, 0xFF -_080830C4: - mov r0, sp - strb r2, [r0] - adds r0, r3, 0 - mov r1, sp - movs r2, 0x1 - bl sub_8082FA8 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80830B4 - - thumb_func_start sub_80830D8 -sub_80830D8: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8082FA8 - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FA8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80830D8 - - thumb_func_start sub_80830F8 -sub_80830F8: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8082FA8 - adds r1, r4, 0x4 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FA8 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FA8 - adds r4, 0xC - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FA8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80830F8 - - thumb_func_start sub_808312C -sub_808312C: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x1 - bl sub_8082FA8 - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FA8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808312C - - thumb_func_start sub_808314C -sub_808314C: - push {lr} - bl sub_8082FA8 - pop {r0} - bx r0 - thumb_func_end sub_808314C - - thumb_func_start sub_8083158 -sub_8083158: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x2 - bl sub_8082FE0 - mov r0, sp - ldrh r0, [r0] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8083158 - - thumb_func_start sub_8083170 -sub_8083170: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x2 - bl sub_8082FE0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8083170 - - thumb_func_start sub_8083188 -sub_8083188: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x1 - bl sub_8082FE0 - mov r0, sp - ldrb r0, [r0] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8083188 - - thumb_func_start sub_80831A0 -sub_80831A0: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x4 - bl sub_8082FE0 - ldr r0, [sp] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_80831A0 - - thumb_func_start sub_80831B4 -sub_80831B4: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x4 - bl sub_8082FE0 - ldr r0, [sp] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_80831B4 - - thumb_func_start sub_80831C8 -sub_80831C8: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x4 - bl sub_8082FE0 - ldr r0, [sp] - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_80831C8 - - thumb_func_start sub_80831DC -sub_80831DC: - push {lr} - sub sp, 0x4 - mov r1, sp - movs r2, 0x1 - bl sub_8082FE0 - mov r0, sp - ldrb r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_80831DC - - thumb_func_start sub_80831F8 -sub_80831F8: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FE0 - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FE0 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80831F8 - - thumb_func_start sub_8083220 -sub_8083220: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0 - str r0, [r4] - str r0, [r4, 0x4] - str r0, [r4, 0x8] - str r0, [r4, 0xC] - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FE0 - adds r1, r4, 0x4 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FE0 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FE0 - adds r4, 0xC - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FE0 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8083220 - - thumb_func_start sub_8083260 -sub_8083260: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0 - strh r0, [r4] - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r2, 0x1 - bl sub_8082FE0 - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8082FE0 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8083260 - .align 2, 0 diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h index 8bc5db5ab..d9572b407 100644 --- a/include/dungeon_entity.h +++ b/include/dungeon_entity.h @@ -227,7 +227,7 @@ struct EntityInfo /* 0x16C */ struct Position targetPos; /* 0x170 */ struct Position pixelPos; u32 unk174; - u8 fill178[0x17A - 0x178]; + u16 unk178; /* 0x17A */ u16 mimicMoveIDs[MAX_MON_MOVES]; // All moves that Mimic has copied (not sure on size...) // Previous value of targetPosition for movement, 1 and 2 moves ago. /* 0x184 */ struct Position previousTargetMovePosition1; diff --git a/src/code_8083288.c b/src/code_8083288.c index 6ea3eb23d..f0f3ac618 100644 --- a/src/code_8083288.c +++ b/src/code_8083288.c @@ -1,8 +1,192 @@ #include "global.h" -extern void sub_8082FE0(u32, u32, u32); +extern void sub_8082FE0(u32, void *, u32); +extern void sub_8082FA8(void *, void *, u32); -void sub_8083288(u32 r0, u32 r1, u32 r2) + +void nullsub_98() +{} + +void sub_808300C(u32 *param_1, u32 *param_2) +{ + sub_8082FA8(param_1, param_2, 8); +} + +void sub_8083018(u32 param_1) +{ + u8 auStack_10 [12]; + + sub_8082FE0(param_1,auStack_10,8); + auStack_10[8] = 0; +} + +void sub_8083030(u32 *param_1, u32 param_2) +{ + u16 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,2); +} + +void sub_8083048(u32 *param_1, u32 param_2) +{ + u16 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,2); +} + +void sub_8083060(u32 *param_1, u32 param_2) +{ + u8 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,1); +} + +void sub_8083078(u32 *param_1, u32 param_2) +{ + u32 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,4); +} + +void sub_808308C(u32 *param_1, u32 param_2) +{ + u32 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,4); +} + +void sub_80830A0(u32 *param_1, u32 param_2) +{ + u32 uStack_8; + + uStack_8 = param_2; + sub_8082FA8(param_1,&uStack_8,4); +} + +void sub_80830B4(u32 *param_1, u8 param_2) +{ + u8 local_8; + + local_8 = (param_2 != 0) ? -1 : 0; + sub_8082FA8(param_1,&local_8,1); +} + +void sub_80830D8(u32 *param_1, u16 *param_2) +{ + sub_8082FA8(param_1, ¶m_2[0], 1); + sub_8082FA8(param_1, ¶m_2[1], 1); +} + +void sub_80830F8(u32 *param_1, u32 *param_2) +{ + sub_8082FA8(param_1, ¶m_2[0], 1); + sub_8082FA8(param_1, ¶m_2[1], 1); + sub_8082FA8(param_1, ¶m_2[2], 1); + sub_8082FA8(param_1, ¶m_2[3], 1); +} + +void sub_808312C(u32 *param_1, u16 *param_2) +{ + sub_8082FA8(param_1, ¶m_2[0], 1); + sub_8082FA8(param_1, ¶m_2[1], 1); +} + +void sub_808314C(u32 *param_1, u32 *param_2, u32 param_3) +{ + sub_8082FA8(param_1, param_2, param_3); +} + +u16 sub_8083158(u32 param_1) +{ + u16 local_8; + + sub_8082FE0(param_1,&local_8,2); + return local_8; +} + +s16 sub_8083170(u32 param_1) +{ + s16 local_8; + + sub_8082FE0(param_1,&local_8,2); + return local_8; +} + +u8 sub_8083188(u32 param_1) +{ + u8 local_8; + + sub_8082FE0(param_1,&local_8,1); + return local_8; +} + +u32 sub_80831A0(u32 param_1) +{ + u32 local_8; + + sub_8082FE0(param_1,&local_8,4); + return local_8; +} + +u32 sub_80831B4(u32 param_1) +{ + u32 local_8; + + sub_8082FE0(param_1,&local_8,4); + return local_8; +} + +u32 sub_80831C8(u32 param_1) +{ + u32 local_8; + + sub_8082FE0(param_1,&local_8,4); + return local_8; +} + +bool8 sub_80831DC(u32 param_1) +{ + u8 local_8; + + sub_8082FE0(param_1,&local_8,1); + return local_8 != 0; +} + +void sub_80831F8(u32 param_1,u16 *param_2) +{ + param_2[0] = 0; + param_2[1] = 0; + sub_8082FE0(param_1,¶m_2[0],1); + sub_8082FE0(param_1,¶m_2[1],1); +} + + +void sub_8083220(u32 param_1,u32 *param_2) +{ + param_2[0] = 0; + param_2[1] = 0; + param_2[2] = 0; + param_2[3] = 0; + sub_8082FE0(param_1,¶m_2[0],1); + sub_8082FE0(param_1,¶m_2[1],1); + sub_8082FE0(param_1,¶m_2[2],1); + sub_8082FE0(param_1,¶m_2[3],1); +} + +void sub_8083260(u32 param_1,u16 *param_2) +{ + param_2[0] = 0; + param_2[1] = 0; + sub_8082FE0(param_1,¶m_2[0],1); + sub_8082FE0(param_1,¶m_2[1],1); +} + +void sub_8083288(u32 r0, u16 *r1, u32 r2) { sub_8082FE0(r0, r1, r2); }