From 1086bf33e9ea04ca4e022fbef7704ef7655f928e Mon Sep 17 00:00:00 2001 From: user Date: Thu, 25 Jul 2024 21:40:26 +0200 Subject: [PATCH] Decomp EntryOverlay31 --- ...{overlay_31.inc => overlay_3102382864.inc} | 133 ++++++++++++++---- asm/{overlay_31.s => overlay_3102382864.s} | 24 +--- include/overlay_3102382820.h | 6 + main.lsf | 3 +- src/overlay_3102382820.c | 21 +++ 5 files changed, 133 insertions(+), 54 deletions(-) rename asm/include/{overlay_31.inc => overlay_3102382864.inc} (71%) rename asm/{overlay_31.s => overlay_3102382864.s} (99%) create mode 100644 include/overlay_3102382820.h create mode 100644 src/overlay_3102382820.c diff --git a/asm/include/overlay_31.inc b/asm/include/overlay_3102382864.inc similarity index 71% rename from asm/include/overlay_31.inc rename to asm/include/overlay_3102382864.inc index 528e0e65..6a116b17 100644 --- a/asm/include/overlay_31.inc +++ b/asm/include/overlay_3102382864.inc @@ -1,5 +1,4 @@ #pragma once -.public _020A1870 .public AddDungeonSubMenuOption .public AdvanceFrame .public AiMovement @@ -31,12 +30,47 @@ .public CreateScrollBoxSingle .public CreateTextBox .public CreateTextBoxWithArg +.public DUNGEON_MAIN_MENU_ITEMS +.public DUNGEON_PTR +.public DUNGEON_SUBMENU_ITEMS_1 +.public DUNGEON_SUBMENU_ITEMS_5 +.public DUNGEON_SUBMENU_ITEMS_6 +.public DUNGEON_WINDOW_PARAMS_1 +.public DUNGEON_WINDOW_PARAMS_10 +.public DUNGEON_WINDOW_PARAMS_11 +.public DUNGEON_WINDOW_PARAMS_12 +.public DUNGEON_WINDOW_PARAMS_13 +.public DUNGEON_WINDOW_PARAMS_14 +.public DUNGEON_WINDOW_PARAMS_15 +.public DUNGEON_WINDOW_PARAMS_16 +.public DUNGEON_WINDOW_PARAMS_17 +.public DUNGEON_WINDOW_PARAMS_18 +.public DUNGEON_WINDOW_PARAMS_19 +.public DUNGEON_WINDOW_PARAMS_2 +.public DUNGEON_WINDOW_PARAMS_20 +.public DUNGEON_WINDOW_PARAMS_21 +.public DUNGEON_WINDOW_PARAMS_22 +.public DUNGEON_WINDOW_PARAMS_23 +.public DUNGEON_WINDOW_PARAMS_24 +.public DUNGEON_WINDOW_PARAMS_25 +.public DUNGEON_WINDOW_PARAMS_26 +.public DUNGEON_WINDOW_PARAMS_27 +.public DUNGEON_WINDOW_PARAMS_28 +.public DUNGEON_WINDOW_PARAMS_29 +.public DUNGEON_WINDOW_PARAMS_30 +.public DUNGEON_WINDOW_PARAMS_31 +.public DUNGEON_WINDOW_PARAMS_32 +.public DUNGEON_WINDOW_PARAMS_4 +.public DUNGEON_WINDOW_PARAMS_5 +.public DUNGEON_WINDOW_PARAMS_6 +.public DUNGEON_WINDOW_PARAMS_7 +.public DUNGEON_WINDOW_PARAMS_8 +.public DUNGEON_WINDOW_PARAMS_9 .public Debug_Print0 .public DisableDungeonSubMenuOption .public DisplayMessage .public DrawTextInWindow .public DrawTileGrid -.public DUNGEON_PTR .public FormatMoveString .public FormatMoveStringMore .public GetActiveTeamMember @@ -89,11 +123,50 @@ .public JoinedAtRangeCheck2Veneer .public LogMessageByIdWithPopupCheckUser .public MemAlloc -.public memcpy .public MemFree -.public memset .public MemZero .public MonsterHasEmbargoStatus +.public OVERLAY31_JP_STRING +.public OVERLAY31_UNKNOWN_POINTER__NA_238A260 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A268 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A26C +.public OVERLAY31_UNKNOWN_POINTER__NA_238A270 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A27C +.public OVERLAY31_UNKNOWN_POINTER__NA_238A280 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A284 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A288 +.public OVERLAY31_UNKNOWN_POINTER__NA_238A28C +.public OVERLAY31_UNKNOWN_STRING_IDS +.public OVERLAY31_UNKNOWN_STRUCT__NA_2389E30 +.public OVERLAY31_UNKNOWN_STRUCT__NA_2389EF0 +.public OVERLAY31_UNKNOWN_STRUCT__NA_2389FE8 +.public OVERLAY31_UNKNOWN_STRUCT__NA_238A144 +.public OVERLAY31_UNKNOWN_STRUCT__NA_238A190 +.public PlaySeVolumeWrapper +.public PlayWindowInputSound +.public PopInventoryMenuField0x1A3 +.public PositionHasItem +.public PreprocessString +.public PreprocessStringFromId +.public PrintIqSkillsMenu +.public ResumeParentMenu +.public SetAdvancedTextBoxField0x1C2 +.public SetAdvancedTextBoxField0x1C4 +.public SetAdvancedTextBoxState5 +.public SetMonsterActionFields +.public ShouldMonsterRunAwayVariation +.public ShowStringInDialogueBox +.public SortItemsInBag +.public SpecificRecruitCheck +.public StringFromId +.public TeamMemberHasEnabledIqSkill +.public TryPointCameraToMonster +.public UpdateMapSurveyorFlag +.public UpdateWindow +.public YesNoMenu +.public _020A1870 +.public memcpy +.public memset .public ov10_022BCC60 .public ov10_022BCC7C .public ov10_022BCCB0 @@ -104,7 +177,6 @@ .public ov10_022BCE44 .public ov10_022BD394 .public ov10_022BD474 -.public ov29_02056264 .public ov29_022E08F4 .public ov29_022E0C2C .public ov29_022E1618 @@ -157,30 +229,37 @@ .public ov29_0234F77C .public ov29_0234FB50 .public ov29_0234FB60 -.public ov29_0234FB6C .public ov29_0234FBD4 .public ov29_0235352C .public ov29_0237C91C .public ov29_0238280C -.public OVERLAY31_UNKNOWN_STRING_IDS -.public PlaySeVolumeWrapper -.public PlayWindowInputSound -.public PopInventoryMenuField0x1A3 -.public PositionHasItem -.public PreprocessString -.public PreprocessStringFromId -.public PrintIqSkillsMenu -.public ResumeParentMenu -.public SetAdvancedTextBoxField0x1C2 -.public SetAdvancedTextBoxField0x1C4 -.public SetAdvancedTextBoxState5 -.public SetMonsterActionFields -.public ShouldMonsterRunAwayVariation -.public ShowStringInDialogueBox -.public SortItemsInBag -.public SpecificRecruitCheck +.public ov31_02389E14 +.public ov31_02389E22 +.public ov31_02389F5C +.public ov31_0238A044 +.public ov31_0238A04C +.public ov31_0238A054 +.public ov31_0238A05C +.public ov31_0238A064 +.public ov31_0238A06C +.public ov31_0238A074 +.public ov31_0238A07C +.public ov31_0238A084 +.public ov31_0238A0A8 +.public ov31_0238A0B0 +.public ov31_0238A0B8 +.public ov31_0238A0C0 +.public ov31_0238A0C8 +.public ov31_0238A0D0 +.public ov31_0238A0D8 +.public ov31_0238A0E0 +.public ov31_0238A0E8 +.public ov31_0238A154 +.public ov31_0238A228 +.public ov31_0238A23C +.public ov31_0238A2A0 +.public ov31_0238A2A8 .public strcpy -.public StringFromId .public sub_02001808 .public sub_0200B3D4 .public sub_0200D310 @@ -216,7 +295,6 @@ .public sub_0203FD14 .public sub_0203FD38 .public sub_0203FD44 -.public sub_0203FE5C .public sub_0204018C .public sub_0204019C .public sub_020407C0 @@ -242,9 +320,4 @@ .public sub_02054F44 .public sub_02056228 .public sub_020585B4 -.public TeamMemberHasEnabledIqSkill -.public TryPointCameraToMonster -.public UpdateMapSurveyorFlag -.public UpdateWindow .public vsprintf -.public YesNoMenu diff --git a/asm/overlay_31.s b/asm/overlay_3102382864.s similarity index 99% rename from asm/overlay_31.s rename to asm/overlay_3102382864.s index bd0fc79e..ab4af33d 100644 --- a/asm/overlay_31.s +++ b/asm/overlay_3102382864.s @@ -1,30 +1,8 @@ .include "asm/macros.inc" - .include "overlay_31.inc" + .include "overlay_3102382864.inc" .text - arm_func_start EntryOverlay31 -EntryOverlay31: ; 0x02382820 - stmdb sp!, {r3, lr} - ldr r0, _0238285C ; =DUNGEON_WINDOW_PARAMS_3 - bl sub_020348E4 - cmp r0, #0 - ldmeqia sp!, {r3, pc} - mov r0, #0x10 - mov r1, #8 - bl MemAlloc - ldr r1, _02382860 ; =OVERLAY31_UNKNOWN_POINTER__NA_238A260 - mov r2, #0 - str r0, [r1] - str r2, [r0, #4] - mov r0, #0xa - str r0, [r1, #4] - ldmia sp!, {r3, pc} - .align 2, 0 -_0238285C: .word DUNGEON_WINDOW_PARAMS_3 -_02382860: .word OVERLAY31_UNKNOWN_POINTER__NA_238A260 - arm_func_end EntryOverlay31 - arm_func_start DrawDungeonMenuStatusWindow DrawDungeonMenuStatusWindow: ; 0x02382864 #ifdef JAPAN diff --git a/include/overlay_3102382820.h b/include/overlay_3102382820.h new file mode 100644 index 00000000..c7aef846 --- /dev/null +++ b/include/overlay_3102382820.h @@ -0,0 +1,6 @@ +#ifndef PMDSKY_OVERLAY_3102382820_H +#define PMDSKY_OVERLAY_3102382820_H + +void EntryOverlay31(void); + +#endif //PMDSKY_OVERLAY_3102382820_H diff --git a/main.lsf b/main.lsf index 992556e0..0875971c 100644 --- a/main.lsf +++ b/main.lsf @@ -305,7 +305,8 @@ Overlay OVY_30 Overlay OVY_31 { After OVY_29 - Object asm/overlay_31.o + Object src/overlay_3102382820.o + Object asm/overlay_3102382864.o } Overlay OVY_32 { diff --git a/src/overlay_3102382820.c b/src/overlay_3102382820.c new file mode 100644 index 00000000..6eb9ebcf --- /dev/null +++ b/src/overlay_3102382820.c @@ -0,0 +1,21 @@ +#include "overlay_3102382820.h" + +extern u32 DUNGEON_WINDOW_PARAMS_3[]; +extern struct {u32* a; u32 b;} OVERLAY31_UNKNOWN_POINTER__NA_238A260; + +extern void* MemAlloc(u32 len, u32 flags); +extern void* sub_020348E4(u32*); + + +void EntryOverlay31(void) { + u32* r0 = (u32*)sub_020348E4(DUNGEON_WINDOW_PARAMS_3); + if (r0 == NULL) { + return; + } + r0 = (u32*)MemAlloc(16, 0x8); + OVERLAY31_UNKNOWN_POINTER__NA_238A260.a = r0; + r0[1] = 0; + OVERLAY31_UNKNOWN_POINTER__NA_238A260.b = 0xa; + + return; +}