Decomp UnloadFile and MemFree

This commit is contained in:
Chesyon 2025-09-19 18:03:04 -04:00
parent 6ad50472eb
commit 65a0a07be8
20 changed files with 7154 additions and 7084 deletions

View File

@ -1,58 +1,18 @@
#pragma once
.public DEFAULT_MEMORY_ARENA_MEMORY
.public Debug_FatalError
.public Debug_Print0
.public MEMORY_ALLOCATION_ARENA_GETTERS
.public MemLocateSet
.public _02090B40
.public _02090B70
.public _02090BA0
.public _02090BC8
.public _02090BFC
.public _02090C48
.public _02092464
.public _020AEF08
.public _020AEF30
.public _020AEF58
.public _020B3380
.public _020B3384
.public _020B33A0
.public _020B33C0
.public _0229AFC0
.public _0229AFCC
.public _0229AFE4
.public _0229B004
.public _0229B0E0
.public _0229B0E8
.public _0229B0F0
.public _0229B0F8
.public _0229B110
.public _0229B114
.public _022B966C
.public CardPullOut
.public Debug_FatalError
.public Debug_Print0
.public DEFAULT_MEMORY_ARENA_MEMORY
.public GX_DispOff
.public MEMORY_ALLOCATION_ARENA_GETTERS
.public NATURAL_LOG_VALUE_TABLE
.public OS_GetLockID
.public PRNG_SEQUENCE_NUM
.public StartThread
.public sub_02003AD0
.public sub_020059A8
.public sub_02079844
.public sub_02079888
.public sub_02079940
.public sub_02079A64
.public sub_02079B0C
.public sub_02079C14
.public sub_02079DB8
.public sub_02079DE0
.public sub_02079E74
.public sub_0207A030
.public sub_0207A048
.public sub_0207A0CC
.public sub_0207A164
.public sub_0207B930
.public sub_02083434
.public sub_02083450
.public sub_0208346C
.public sub_0208347C
.public sub_020845D8
.public WaitForInterrupt
.public sub_02002C40
.public sub_02002CAC
.public sub_02002CB4
.public sub_02002E98

View File

@ -0,0 +1,61 @@
#pragma once
.public CardPullOut
.public Debug_FatalError
.public Debug_Print0
.public FindAvailableMemBlock
.public GX_DispOff
.public InitMemAllocTable
.public InitMemArena
.public MEMORY_ALLOCATION_ARENA_GETTERS
.public MemAlloc
.public MemAllocFlagsToBlockType
.public NATURAL_LOG_VALUE_TABLE
.public OS_GetLockID
.public PRNG_SEQUENCE_NUM
.public SplitMemBlock
.public StartThread
.public WaitForInterrupt
.public _02090B40
.public _02090BA0
.public _02090BC8
.public _02090BFC
.public _02090C48
.public _02092464
.public _020AEF08
.public _020AEF30
.public _020AEF58
.public _020B3380
.public _020B3384
.public _020B33A0
.public _0229AFC0
.public _0229AFCC
.public _0229AFE4
.public _0229B004
.public _0229B0E0
.public _0229B0E8
.public _0229B0F0
.public _0229B0F8
.public _0229B110
.public _0229B114
.public _022B966C
.public sub_02003AD0
.public sub_020059A8
.public sub_02079844
.public sub_02079888
.public sub_02079940
.public sub_02079A64
.public sub_02079B0C
.public sub_02079C14
.public sub_02079DB8
.public sub_02079DE0
.public sub_02079E74
.public sub_0207A030
.public sub_0207A048
.public sub_0207A0CC
.public sub_0207A164
.public sub_0207B930
.public sub_02083434
.public sub_02083450
.public sub_0208346C
.public sub_0208347C
.public sub_020845D8

View File

@ -1,21 +1,14 @@
#pragma once
.public _0200A314
.public _0200A344
.public CardPullOutWithStatus
.public DebugPrintSystemClock
.public Debug_FatalError
.public Debug_Print0
.public MemAlloc
.public _02092908
.public _02092978
.public _0209297C
.public _0209299C
.public _020929B8
.public _02092A04
.public _02092A18
.public _02092A38
.public _02092A58
.public _02092A78
.public _02092A98
.public _02092AB8
.public _02092AD8
.public _02094AE8
.public _02094AF0
.public _020AF360
.public _020AF3D0
.public _020AF3E4
@ -25,112 +18,9 @@
.public _020AF490
.public _020AF53C
.public _020AF5E8
.public _020AF694
.public _020AFF38_EU
.public _020AFF3C_EU
.public _022A3698
.public _022A369C
.public _022A36C4
.public _022A37A0
.public _022A37A4
.public _022A37AC
.public _022A37AD
.public _022A37AE
.public _022A37AF
.public _022A37B0
.public _022A37B6
.public _022A37B7
.public _022A37B8
.public _022A37B9
.public _022A37BA
.public _022A37BC
.public _022A37BE
.public _022A37CC
.public _022A37D0
.public _022A37D4
.public _022A37D8
.public _022A37EC
.public _022A37ED
.public _022A37EE
.public _022A37EF
.public _022A37F0
.public _022A37F1
.public _022A37F2
.public _022A37F3
.public _022A37F4
.public _022A37F5
.public _022A37F6
.public _022A37F7
.public _022A37F8
.public _022A37F9
.public _022A37FA
.public _022A37FB
.public _022A37FC
.public _022A37FD
.public _022A37FE
.public _022A37FF
.public _022A3800
.public _022A3801
.public _022A3802
.public _022A3803
.public _022A3804
.public _022A3805
.public _022A3806
.public _s32_div_f
.public ArrayFill32Fast
.public CardPullOutWithStatus
.public CART_REMOVED_IMG_DATA
.public Debug_FatalError
.public Debug_Print0
.public DebugPrintSystemClock
.public DecompressAtFromMemoryPointer
.public G2x_SetBlendAlpha_
.public G3X_ClearFifo
.public G3X_Init
.public G3X_SetClearColor
.public GetLanguage
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForLCDC
.public GX_DisableBankForOBJ
.public GX_DisableBankForOBJExtPltt
.public GX_DisableBankForSubBG
.public GX_DisableBankForSubBGExtPltt
.public GX_DisableBankForSubOBJ
.public GX_DisableBankForTex
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_Init
.public GX_SetBankForBG
.public GX_SetBankForBGExtPltt
.public GX_SetBankForLCDC
.public GX_SetBankForOBJ
.public GX_SetBankForOBJExtPltt
.public GX_SetBankForSubBG
.public GX_SetBankForSubBGExtPltt
.public GX_SetBankForSubOBJ
.public GX_SetBankForTex
.public GX_SetBankForTexPltt
.public GX_SetGraphicsMode
.public GXi_DmaId
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GXx_SetMasterBrightness_
.public MemAlloc
.public Memcpy32
.public MemcpySimple
.public MemFree
.public MemZero16
.public MemZero32
.public Rgb8ToRgb5
.public strcpy
.public sub_02002778
.public sub_020027E8
@ -149,9 +39,6 @@
.public sub_02002F34
.public sub_02002F7C
.public sub_02002F98
.public sub_02004FF8
.public sub_02005D30
.public sub_02005E10
.public sub_02006ED4
.public sub_02007004
.public sub_02007380
@ -172,8 +59,5 @@
.public sub_02007CA0
.public sub_02007D94
.public sub_02007E2C
.public sub_02019304
.public sub_0207A2DC
.public sub_0207C164
.public sub_02008C68
.public sub_0207F70C
.public sub_02082420

View File

@ -0,0 +1,125 @@
#pragma once
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA
.public Debug_Print0
.public DecompressAtFromMemoryPointer
.public G2x_SetBlendAlpha_
.public G3X_ClearFifo
.public G3X_Init
.public G3X_SetClearColor
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForLCDC
.public GX_DisableBankForOBJ
.public GX_DisableBankForOBJExtPltt
.public GX_DisableBankForSubBG
.public GX_DisableBankForSubBGExtPltt
.public GX_DisableBankForSubOBJ
.public GX_DisableBankForTex
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_Init
.public GX_SetBankForBG
.public GX_SetBankForBGExtPltt
.public GX_SetBankForLCDC
.public GX_SetBankForOBJ
.public GX_SetBankForOBJExtPltt
.public GX_SetBankForSubBG
.public GX_SetBankForSubBGExtPltt
.public GX_SetBankForSubOBJ
.public GX_SetBankForTex
.public GX_SetBankForTexPltt
.public GX_SetGraphicsMode
.public GXi_DmaId
.public GXx_SetMasterBrightness_
.public GetLanguage
.public MemAlloc
.public MemFree
.public MemZero16
.public MemZero32
.public Memcpy32
.public MemcpySimple
.public Rgb8ToRgb5
.public UnloadFile
.public _0200A314
.public _0200A344
.public _02092A04
.public _02092A18
.public _02092A38
.public _02092A58
.public _02092A78
.public _02092A98
.public _02092AB8
.public _02092AD8
.public _02094AE8
.public _02094AF0
.public _020AF694
.public _020AFF38_EU
.public _020AFF3C_EU
.public _022A37A0
.public _022A37A4
.public _022A37AC
.public _022A37AD
.public _022A37AE
.public _022A37AF
.public _022A37B0
.public _022A37B6
.public _022A37B7
.public _022A37B8
.public _022A37B9
.public _022A37BA
.public _022A37BC
.public _022A37BE
.public _022A37CC
.public _022A37D0
.public _022A37D4
.public _022A37D8
.public _022A37EC
.public _022A37ED
.public _022A37EE
.public _022A37EF
.public _022A37F0
.public _022A37F1
.public _022A37F2
.public _022A37F3
.public _022A37F4
.public _022A37F5
.public _022A37F6
.public _022A37F7
.public _022A37F8
.public _022A37F9
.public _022A37FA
.public _022A37FB
.public _022A37FC
.public _022A37FD
.public _022A37FE
.public _022A37FF
.public _022A3800
.public _022A3801
.public _022A3802
.public _022A3803
.public _022A3804
.public _022A3805
.public _022A3806
.public _s32_div_f
.public sub_02004FF8
.public sub_02005D30
.public sub_02005E10
.public sub_0200844C
.public sub_0200846C
.public sub_02008980
.public sub_02008A84
.public sub_02019304
.public sub_0207A2DC
.public sub_0207C164
.public sub_02082420

File diff suppressed because it is too large Load Diff

2704
asm/main_0200119C.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4187
asm/main_02008BF4.s Normal file

File diff suppressed because it is too large Load Diff

26
include/main_02001188.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef PMDSKY_MAIN_02001188_H
#define PMDSKY_MAIN_02001188_H
// Unclear if these structs match, since they haven't been used other than in extern prototypes. Hopefully they do, though.
struct mem_block {
u32 content_flags; // Bit 0: in_use. Bit 1: object. Bit 2: arena. Bits 3-31: Unused?
u32 allocator_flags; // Bit 0: alloc_in_use. Bit 1: alloc_object. Bit 2: alloc_arena. Bit 3: alloc_subarena. Bits 4-31: Unused?
u32 user_flags; // Bits 0-7: ??? Bit 8: user_alloc_in_use. Bit 9: user_alloc_arena. Bit 10: user_alloc_arena. Bit 11: user_alloc_subarena. Bits 12-31: Unused?
void * data;
u32 available;
u32 used;
};
struct mem_arena {
u32 content_flags;
struct mem_arena *parent;
struct mem_block *blocks;
u32 n_blocks;
u32 max_blocks;
void *data;
u32 len;
};
void MemFree(void * ptr);
#endif //PMDSKY_MAIN_02001188_H

8
include/main_02008BD4.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef PMDSKY_MAIN_02008BD4_H
#define PMDSKY_MAIN_02008BD4_H
#include <file.h>
void UnloadFile(struct iovec* iov);
#endif //PMDSKY_MAIN_02008BD4_H

View File

@ -11,6 +11,8 @@ Static main
StackSize 0 2048
Object src/main_02000C6C.o
Object asm/main_02000DE0.o
Object src/main_02001188.o
Object asm/main_0200119C.o
Object src/main_0200330C.o
Object asm/main_02003328.o
Object src/main_0200383C.o
@ -21,6 +23,8 @@ Static main
Object asm/main_02008240.o
Object src/main_02008254.o
Object asm/main_020082C4.o
Object src/main_02008BD4.o
Object asm/main_02008BF4.o
Object src/debug.o
Object src/directory_file_mngr.o
Object src/directory_file.o

View File

@ -1,6 +1,8 @@
#include "ground_bg.h"
#include "file_rom.h"
#include "main_0200330C.h"
#include "main_02001188.h"
#include "main_02008BD4.h"
// TODO: Move these to headers
#define RGB_R 0
@ -41,8 +43,6 @@ extern struct UnkStruct_2324CBC *ov11_02324CBC;
extern void FileClose(struct file_stream* file);
extern void* MemAlloc(u32 len, u32 flags);
extern void MemFree(void* ptr);
extern void UnloadFile(struct iovec* ptr);
extern void sub_0200A590(struct UnkStruct_2324CBC_Sub98 *, s32 id, const RGB_Array *src);
extern void sub_0200A504(struct UnkStruct_2324CBC_Sub98 *);
extern s32 sprintf(u8* str, const u8* format, ...);

8
src/main_02001188.c Normal file
View File

@ -0,0 +1,8 @@
#include "main_02001188.h"
extern void MemLocateUnset(struct mem_arena *arena, void *ptr);
void MemFree(void * ptr)
{
MemLocateUnset(0, ptr);
}

8
src/main_02008BD4.c Normal file
View File

@ -0,0 +1,8 @@
#include "main_02008BD4.h"
#include "main_02001188.h"
void UnloadFile(struct iovec* iov) {
MemFree(iov->iov_base);
iov->iov_base = 0;
iov->iov_len = 0;
}

View File

@ -1,7 +1,7 @@
#include "overlay_13_EntryOverlay13.h"
#include "main_02001188.h"
extern void* MemAlloc(u32 len, u32 flags);
extern void MemFree(void* ptr);
void sub_0201F2E4(void);
void sub_020348E4(const u8 *);
extern void ov11_022E6E8C(u32);

View File

@ -1,11 +1,11 @@
#include "overlay_15_0238AE6C.h"
#include "main_02001188.h"
extern unkStruct_ov15_0238AE6C* OVERLAY15_UNKNOWN_POINTER__NA_238B180;
extern void ov15_0238AD78(u8);
extern u16 ov15_0238A140(void);
extern void Debug_Print0(const char* fmt);
extern void MemFree(void* ptr);
extern int ov15_0238A234(void);
extern int IsDialogueBoxActive(s8);
extern void HidePortraitBox(int);

View File

@ -1,7 +1,7 @@
#include "overlay_17_0238A71C.h"
#include "main_02001188.h"
extern void sub_0203C760(void);
extern void MemFree(void *);
extern void *OVERLAY17_UNKNOWN_POINTER__NA_238BE00;
void ov17_0238A71C(void)

View File

@ -1,4 +1,5 @@
#include "overlay_28_0238A58C.h"
#include "main_02001188.h"
extern void* ov28_0238AD80;
@ -6,7 +7,6 @@ extern void ov28_0238AB5C(s32);
extern void sub_02025C14();
extern void sub_02027170();
extern void sub_02027228();
extern void MemFree(void* ptr);
void ov28_0238A58C(void)
{

View File

@ -3,6 +3,7 @@
#include "dungeon_util_static.h"
#include "number_util.h"
#include "weather.h"
#include "main_02001188.h"
extern const u8 DUNGEON_MENU_SWITCH_STR1[];// = "[dungeon:0]";
@ -50,7 +51,6 @@ extern struct struct_1* sub_0202ABB0(s8);
extern void CloseTextBox(s8);
extern void CloseParentMenu(s8);
extern void MemFree(void* ptr);
extern void ov29_022EA428(u32, u32);
extern void AdvanceFrame(u8);

View File

@ -2,6 +2,7 @@
#include "dungeon.h"
#include "main_0202593C.h"
#include "overlay_31_02383478.h"
#include "main_02001188.h"
extern struct dungeon* DUNGEON_PTR[];
extern struct loc_struct* OVERLAY31_UNKNOWN_POINTER__NA_238A26C;
@ -13,7 +14,6 @@ extern s32 sub_020282F4(s8);
extern void CloseInventoryMenu(s8);
extern void ov29_0234E988(u8*);
extern void CloseTextBox2();
extern void MemFree(void* ptr);
extern void DrawTextInWindow(struct window*, u32, u32, u8*);
u8 ov31_0238372C(struct position* x)