summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-28 17:49:52 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-28 17:49:52 -0400
commit3d7ea9dfb8deb95709f0a4441950a3c7ca486e5b (patch)
tree286006671a4872cdc603f9090d492e609a8cebe1
parent38350db4c7086a54c9f7f66a9adf1f79d09b1475 (diff)
Clean up filesystem.c and create headers
-rw-r--r--arm9/src/filesystem.c64
-rw-r--r--include/filesystem.h180
-rw-r--r--include/heap.h8
3 files changed, 215 insertions, 37 deletions
diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c
index c67b689d..3faada5c 100644
--- a/arm9/src/filesystem.c
+++ b/arm9/src/filesystem.c
@@ -1,11 +1,9 @@
#include "global.h"
#include "FS_file.h"
+#include "heap.h"
+#include "filesystem.h"
-void * FUN_02016998(u32 heap_id, u32 size);
-void * FUN_020169D8(u32 heap_id, u32 size);
-void FUN_02016A18(void * ptr);
-
-static char * UNK_021058A0[] = {
+static char * sNarcFileList[] = {
"battle/skill/waza_seq.narc",
"battle/skill/sub_seq.narc",
"poketool/personal/personal.narc",
@@ -245,37 +243,37 @@ THUMB_FUNC void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_i
return dest;
}
-THUMB_FUNC void LoadFromNARC(void * dest, s32 narc_id, s32 file_id)
+THUMB_FUNC void LoadFromNARC(void * dest, NarcId narc_id, s32 file_id)
{
- ReadNARCFile(dest, UNK_021058A0[narc_id], file_id, 0, 0);
+ ReadNARCFile(dest, sNarcFileList[narc_id], file_id, 0, 0);
}
-THUMB_FUNC void * LoadFromNarc_2(s32 narc_id, s32 file_id, u32 heap_id)
+THUMB_FUNC void * LoadFromNarc_2(NarcId narc_id, s32 file_id, u32 heap_id)
{
- return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, 0, 0, FALSE);
+ return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, 0, 0, FALSE);
}
-THUMB_FUNC void * FUN_02006528(s32 narc_id, s32 file_id, u32 heap_id)
+THUMB_FUNC void * FUN_02006528(NarcId narc_id, s32 file_id, u32 heap_id)
{
- return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, 0, 0, TRUE);
+ return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, 0, 0, TRUE);
}
-THUMB_FUNC void FUN_02006548(void * dest, s32 narc_id, s32 file_id, u32 offset, u32 size)
+THUMB_FUNC void FUN_02006548(void * dest, NarcId narc_id, s32 file_id, u32 offset, u32 size)
{
- ReadNARCFile(dest, UNK_021058A0[narc_id], file_id, offset, size);
+ ReadNARCFile(dest, sNarcFileList[narc_id], file_id, offset, size);
}
-THUMB_FUNC void * FUN_02006564(s32 narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size)
+THUMB_FUNC void * FUN_02006564(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size)
{
- return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, offset, size, FALSE);
+ return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, offset, size, FALSE);
}
-THUMB_FUNC void * FUN_02006584(s32 narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size)
+THUMB_FUNC void * FUN_02006584(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size)
{
- return LoadFileIntoMemory(UNK_021058A0[narc_id], file_id, heap_id, offset, size, TRUE);
+ return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, offset, size, TRUE);
}
-THUMB_FUNC u32 LoadFromNARC_7(s32 narc_id, s32 file_idx)
+THUMB_FUNC u32 LoadFromNARC_7(NarcId narc_id, s32 file_idx)
{
FSFile file;
register u32 chunk_starts[3];
@@ -286,7 +284,7 @@ THUMB_FUNC u32 LoadFromNARC_7(s32 narc_id, s32 file_idx)
u16 num_files = 0;
FS_InitFile(&file);
- FS_OpenFile(&file, UNK_021058A0[narc_id]);
+ FS_OpenFile(&file, sNarcFileList[narc_id]);
FS_SeekFile(&file, 12, FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 2);
@@ -312,24 +310,16 @@ THUMB_FUNC u32 LoadFromNARC_7(s32 narc_id, s32 file_idx)
return chunk_size;
}
-struct NARC
-{
- FSFile file;
- u32 btaf_start;
- u32 gmif_start;
- u16 num_files;
-};
-
-THUMB_FUNC struct NARC * FUN_02006670(s32 narc_id, u32 heap_id)
+THUMB_FUNC NARC * FUN_02006670(NarcId narc_id, u32 heap_id)
{
- struct NARC * narc = (struct NARC *)FUN_02016998(heap_id, sizeof(struct NARC));
+ NARC * narc = (NARC *)FUN_02016998(heap_id, sizeof(NARC));
u32 btnf_start;
u32 chunk_size;
if (narc != NULL)
{
narc->btaf_start = 0;
FS_InitFile(&narc->file);
- FS_OpenFile(&narc->file, UNK_021058A0[narc_id]);
+ FS_OpenFile(&narc->file, sNarcFileList[narc_id]);
FS_SeekFile(&narc->file, 12, FS_SEEK_SET);
FS_ReadFile(&narc->file, &narc->btaf_start, 2);
FS_SeekFile(&narc->file, narc->btaf_start + 4, FS_SEEK_SET);
@@ -343,13 +333,13 @@ THUMB_FUNC struct NARC * FUN_02006670(s32 narc_id, u32 heap_id)
return narc;
}
-THUMB_FUNC void FUN_020066F4(struct NARC * narc)
+THUMB_FUNC void FUN_020066F4(NARC * narc)
{
FS_CloseFile(&narc->file);
FUN_02016A18(narc); // free to heap
}
-THUMB_FUNC void * FUN_02006704(struct NARC * narc, u32 file_id, u32 heap_id)
+THUMB_FUNC void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id)
{
u32 file_start;
u32 file_end;
@@ -368,7 +358,7 @@ THUMB_FUNC void * FUN_02006704(struct NARC * narc, u32 file_id, u32 heap_id)
return dest;
}
-THUMB_FUNC void FUN_02006774(struct NARC * narc, u32 file_id, void * dest)
+THUMB_FUNC void FUN_02006774(NARC * narc, u32 file_id, void * dest)
{
u32 file_start;
u32 file_end;
@@ -381,7 +371,7 @@ THUMB_FUNC void FUN_02006774(struct NARC * narc, u32 file_id, void * dest)
FS_ReadFile(&narc->file, dest, file_end - file_start);
}
-THUMB_FUNC u32 FUN_020067D0(struct NARC * narc, u32 file_id)
+THUMB_FUNC u32 FUN_020067D0(NARC * narc, u32 file_id)
{
u32 file_start;
u32 file_end;
@@ -393,7 +383,7 @@ THUMB_FUNC u32 FUN_020067D0(struct NARC * narc, u32 file_id)
return file_end - file_start;
}
-THUMB_FUNC void FUN_02006814(struct NARC * narc, u32 file_id, u32 pos, u32 size, void * dest)
+THUMB_FUNC void FUN_02006814(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest)
{
u32 file_start;
if (narc->num_files <= file_id)
@@ -404,12 +394,12 @@ THUMB_FUNC void FUN_02006814(struct NARC * narc, u32 file_id, u32 pos, u32 size,
FS_ReadFile(&narc->file, dest, size);
}
-THUMB_FUNC void FUN_02006864(struct NARC * narc, u32 size, void * dest)
+THUMB_FUNC void FUN_02006864(NARC * narc, u32 size, void * dest)
{
FS_ReadFile(&narc->file, dest, size);
}
-THUMB_FUNC u16 FUN_02006874(struct NARC * narc)
+THUMB_FUNC u16 FUN_02006874(NARC * narc)
{
return narc->num_files;
}
diff --git a/include/filesystem.h b/include/filesystem.h
new file mode 100644
index 00000000..1c106943
--- /dev/null
+++ b/include/filesystem.h
@@ -0,0 +1,180 @@
+#ifndef POKEDIAMOND_FILESYSTEM_H
+#define POKEDIAMOND_FILESYSTEM_H
+
+typedef struct NARC
+{
+ FSFile file;
+ u32 btaf_start;
+ u32 gmif_start;
+ u16 num_files;
+} NARC;
+
+typedef enum NarcId
+{
+ NARC_BATTLE_SKILL_WAZA_SEQ = 0,
+ NARC_BATTLE_SKILL_SUB_SEQ,
+ NARC_POKETOOL_PERSONAL_PERSONAL,
+ NARC_POKETOOL_PERSONAL_GROWTBL,
+ NARC_POKETOOL_POKEGRA_POKEGRA,
+ NARC_POKETOOL_POKEGRA_HEIGHT,
+ NARC_POKETOOL_TRGRA_TRBGRA,
+ NARC_BATTLE_GRAPHIC_BATT_BG,
+ NARC_WAZAEFFECT_WE,
+ NARC_POKETOOL_WAZA_WAZA_TBL,
+ NARC_FIELDDATA_SCRIPT_SCR_SEQ_RELEASE,
+ NARC_MSGDATA_SCENARIO_SCR_MSG,
+ NARC_GRAPHIC_POKETCH,
+ NARC_GRAPHIC_BAG_GRA,
+ NARC_GRAPHIC_FONT,
+ NARC_ITEMTOOL_ITEMDATA_ITEM_DATA,
+ NARC_ITEMTOOL_ITEMDATA_ITEM_ICON,
+ NARC_GRAPHIC_TMAP_GRA,
+ NARC_GRAPHIC_BOX,
+ NARC_POKETOOL_ICONGRA_POKE_ICON,
+ NARC_GRAPHIC_PLIST_GRA,
+ NARC_WAZAEFFECT_EFFECTCLACT_WECHAR,
+ NARC_WAZAEFFECT_EFFECTCLACT_WEPLTT,
+ NARC_WAZAEFFECT_EFFECTCLACT_WECELL,
+ NARC_WAZAEFFECT_EFFECTCLACT_WECELLANM,
+ NARC_GRAPHIC_IMAGECLIP,
+ NARC_MSGDATA_MSG,
+ NARC_BATTLE_GRAPHIC_BATT_OBJ,
+ NARC_DATA_UNDERG_RADAR,
+ NARC_WAZAEFFECT_EFFECTDATA_WAZA_PARTICLE,
+ NARC_BATTLE_SKILL_BE_SEQ,
+ NARC_DATA_NAMEIN,
+ NARC_FIELDDATA_EVENTDATA_ZONE_EVENT_RELEASE,
+ NARC_POKETOOL_PERSONAL_WOTBL,
+ NARC_POKETOOL_PERSONAL_EVO,
+ NARC_GRAPHIC_FONTOAM,
+ NARC_GRAPHIC_FIELD_BOARD,
+ NARC_FIELDDATA_ENCOUNTDATA_D_ENC_DATA,
+ NARC_GRAPHIC_WINFRAME,
+ NARC_GRAPHIC_PST_GRA,
+ NARC_FIELDDATA_BUILD_MODEL_BUILD_MODEL,
+ NARC_FIELDDATA_MAPMATRIX_MAP_MATRIX,
+ NARC_FIELDDATA_AREADATA_AREA_DATA,
+ NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREA_BUILD,
+ NARC_FIELDDATA_AREADATA_AREA_MAP_TEX_MAP_TEX_SET,
+ NARC_CONTEST_GRAPHIC_CONTEST_BG,
+ NARC_CONTEST_GRAPHIC_CONTEST_OBJ,
+ NARC_DATA_UGEFFECT_OBJ_GRAPHIC,
+ NARC_DEMO_TITLE_TITLEDEMO,
+ NARC_FIELDDATA_AREADATA_AREA_MOVE_MODEL_MOVE_MODEL_LIST,
+ NARC_DATA_UG_TRAP,
+ NARC_GRAPHIC_TRAINER_CASE,
+ NARC_DATA_UG_FOSSIL,
+ NARC_GRAPHIC_NTAG_GRA,
+ NARC_DATA_TRADELIST,
+ NARC_DATA_UG_PARTS,
+ NARC_GRAPHIC_OPENING,
+ NARC_POKETOOL_TRAINER_TRDATA,
+ NARC_POKETOOL_TRAINER_TRPOKE,
+ NARC_POKETOOL_TRMSG_TRTBL,
+ NARC_POKETOOL_TRGRA_TRFGRA,
+ NARC_PARTICLEDATA_PARTICLEDATA,
+ NARC_GRAPHIC_SHOP_GRA,
+ NARC_WAZAEFFECT_WE_SUB,
+ NARC_DATA_UG_ANIM,
+ NARC_DATA_WEATHER_SYS,
+ NARC_GRAPHIC_MENU_GRA,
+ NARC_FIELDDATA_LAND_DATA_LAND_DATA_RELEASE,
+ NARC_ITEMTOOL_ITEMDATA_NUTS_DATA,
+ NARC_RESOURCE_ENG_ZUKAN_ZUKAN,
+ NARC_POKETOOL_POKEFOOT_POKEFOOT,
+ NARC_FIELDDATA_AREADATA_AREA_BUILD_MODEL_AREABM_TEXSET,
+ NARC_BATTLE_GRAPHIC_B_PLIST_GRA,
+ NARC_GRAPHIC_CONFIG_GRA,
+ NARC_GRAPHIC_UNIONROOM,
+ NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_DATA,
+ NARC_GRAPHIC_PMSI,
+ NARC_BATTLE_GRAPHIC_B_BAG_GRA,
+ NARC_GRAPHIC_OEKAKI,
+ NARC_GRAPHIC_MAIL_GRA,
+ NARC_GRAPHIC_F_NOTE_GRA,
+ NARC_DATA_MMODEL_MMODEL,
+ NARC_GRAPHIC_EV_POKESELECT,
+ NARC_GRAPHIC_PORU_GRA,
+ NARC_GRAPHIC_TOUCH_SUBWINDOW,
+ NARC_GRAPHIC_FLD_COMACT,
+ NARC_GRAPHIC_RECORD,
+ NARC_GRAPHIC_PORUDEMO,
+ NARC_GRAPHIC_PORUACT,
+ NARC_DATA_WIFINOTE,
+ NARC_CONTEST_DATA_CONTEST_DATA,
+ NARC_APPLICATION_CUSTOM_BALL_DATA_CB_DATA,
+ NARC_DATA_WIFIP2PMATCH,
+ NARC_GRAPHIC_DEMO_TRADE,
+ NARC_POKEANIME_POKE_ANM,
+ NARC_GRAPHIC_MYSIGN,
+ NARC_FIELDDATA_MM_LIST_MOVE_MODEL_LIST,
+ NARC_DATA_FIELD_CUTIN,
+ NARC_DATA_DEMO_CLIMAX,
+ NARC_WAZAEFFECT_EFFECTDATA_BALL_PARTICLE,
+ NARC_WAZAEFFECT_PT_DEBUG_DEBUG_PARTICLE,
+ NARC_GRAPHIC_DENDOU_PC,
+ NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH_PLACE,
+ NARC_BATTLE_TR_AI_TR_AI_SEQ,
+ NARC_GRAPHIC_WORLDTRADE,
+ NARC_GRAPHIC_DENDOU_DEMO,
+ NARC_ARC_ENCDATA_EX,
+ NARC_DATA_MMODEL_FLDEFF,
+ NARC_BATTLE_GRAPHIC_VS_DEMO_GRA,
+ NARC_POKETOOL_POKEZUKAN,
+ NARC_ARC_BM_ANIME,
+ NARC_ARC_BM_ANIME_LIST,
+ NARC_GRAPHIC_FIELD_ENCOUNTEFFECT,
+ NARC_GRAPHIC_WAZA_OSHIE_GRA,
+ NARC_POKETOOL_POKEANM_POKEANM,
+ NARC_FIELDDATA_POKEMON_TRADE_FLD_TRADE,
+ NARC_GRAPHIC_MYSTERY,
+ NARC_POKETOOL_POKEGRA_OTHERPOKE,
+ NARC_DEMO_EGG_DATA_EGG_DATA,
+ NARC_DEMO_EGG_DATA_PARTICLE_EGG_DEMO_PARTICLE,
+ NARC_ARC_SHIP_DEMO,
+ NARC_POKETOOL_POKEGRA_HEIGHT_O,
+ NARC_GRAPHIC_NUTMIXER,
+ NARC_GRAPHIC_BTOWER,
+ NARC_DEMO_SHINKA_DATA_PARTICLE_SHINKA_DEMO_PARTICLE,
+ NARC_DEMO_INTRO_INTRO,
+ NARC_ARC_TV,
+ NARC_GRAPHIC_ENDING,
+ NARC_DEMO_TITLE_OP_DEMO,
+ NARC_APPLICATION_WIFI_EARTH_WIFI_EARTH,
+ NARC_GRAPHIC_RANKING,
+ NARC_ARC_PPARK,
+ NARC_DEMO_SYOUJYOU_SYOUJYOU,
+ NARC_DATA_SLOT,
+ NARC_BATTLE_B_TOWER_BTDTR,
+ NARC_BATTLE_B_TOWER_BTDPM,
+ NARC_DEMO_INTRO_INTRO_TV,
+ NARC_POKETOOL_TRMSG_TRTBLOFS,
+ NARC_POKETOOL_POKEGRA_POKE_YOFS,
+ NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND,
+ NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL,
+ NARC_GRAPHIC_HIDEN_EFFECT,
+ NARC_POKETOOL_POKEGRA_POKE_SHADOW,
+ NARC_FIELDDATA_ENCOUNTDATA_P_ENC_DATA,
+ NARC_POKETOOL_POKEGRA_POKE_SHADOW_OFX,
+ NARC_POKETOOL_SHINZUKAN,
+} NarcId;
+
+void ReadNARCFile(void * dest, const char * path, s32 file_idx, u32 offset, u32 size);
+void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_id, u32 offset, u32 size, BOOL r4);
+void LoadFromNARC(void * dest, NarcId narc_id, s32 file_id);
+void * LoadFromNarc_2(NarcId narc_id, s32 file_id, u32 heap_id);
+void * FUN_02006528(NarcId narc_id, s32 file_id, u32 heap_id);
+void FUN_02006548(void * dest, NarcId narc_id, s32 file_id, u32 offset, u32 size);
+void * FUN_02006564(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size);
+void * FUN_02006584(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size);
+u32 LoadFromNARC_7(NarcId narc_id, s32 file_idx);
+NARC * FUN_02006670(NarcId narc_id, u32 heap_id);
+void FUN_020066F4(NARC * narc);
+void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id);
+void FUN_02006774(NARC * narc, u32 file_id, void * dest);
+u32 FUN_020067D0(NARC * narc, u32 file_id);
+void FUN_02006814(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest);
+void FUN_02006864(NARC * narc, u32 size, void * dest);
+u16 FUN_02006874(NARC * narc);
+
+#endif //POKEDIAMOND_FILESYSTEM_H
diff --git a/include/heap.h b/include/heap.h
new file mode 100644
index 00000000..36b79122
--- /dev/null
+++ b/include/heap.h
@@ -0,0 +1,8 @@
+#ifndef POKEDIAMOND_HEAP_H
+#define POKEDIAMOND_HEAP_H
+
+void * FUN_02016998(u32 heap_id, u32 size);
+void * FUN_020169D8(u32 heap_id, u32 size);
+void FUN_02016A18(void * ptr);
+
+#endif //POKEDIAMOND_HEAP_H