Fix prototypes in module 52

This commit is contained in:
PikalaxALT
2021-05-16 20:39:53 -04:00
parent e22dc91341
commit dc13d38ac2
4 changed files with 176 additions and 508 deletions

View File

@@ -15,10 +15,7 @@ endif(APPLE)
add_compile_options(-fms-extensions)
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c" "*.cpp")
add_executable(PokeDiamond ${SOURCES})
target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include arm9/modules/05/include arm9/modules/21/include arm9/modules/59/include arm9/modules/63/include)
add_subdirectory(arm9)
add_executable(calcrom .github/calcrom/calcrom.cpp)
target_include_directories(calcrom PRIVATE /usr/local/include)

18
arm9/CMakeLists.txt Normal file
View File

@@ -0,0 +1,18 @@
cmake_minimum_required (VERSION 3.15)
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
project(DP_Arm9)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)
# TODO: Add commands
enable_language(ASM)
add_compile_options(-fms-extensions)
file(GLOB_RECURSE SOURCES "*.c" "*.cpp")
file(GLOB MODULE_INC modules/*/include)
add_executable(DP_Arm9 ${SOURCES})
target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC})

View File

@@ -13,30 +13,22 @@
#include "unk_02024E64.h"
#include "unk_020286F8.h"
const u8 MOD52_021D76F8[];
const u16 MOD52_021D76F8[];
THUMB_FUNC int MOD52_021D74E0();
THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0);
THUMB_FUNC int MOD52_021D750C();
THUMB_FUNC BOOL MOD52_021D74E0();
THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused);
THUMB_FUNC BOOL MOD52_021D750C();
THUMB_FUNC int MOD52_021D7528();
THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0);
THUMB_FUNC int MOD52_021D7560();
THUMB_FUNC BOOL MOD52_021D7528();
THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused);
THUMB_FUNC BOOL MOD52_021D7560();
THUMB_FUNC int MOD52_021D757C();
THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0);
THUMB_FUNC int MOD52_021D75E8();
THUMB_FUNC BOOL MOD52_021D757C();
THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused);
THUMB_FUNC BOOL MOD52_021D75E8();
THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid);
THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2);
THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2);
struct MOD52_Struct
{
int (*func1)(void);
int (*func2)(struct UnkStruct_02006234 *param0);
int (*func3)(void);
u32 terminator;
};
#endif // POKEDIAMOND_MODULE_52_H

View File

@@ -9,20 +9,23 @@ extern struct Unk21DBE18 UNK_020F2B8C;
extern void FUN_02015E3C(struct IGT *igt);
extern int FUN_02053678(u32 random, u32 gender, u32 param2);
extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3);
extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u16 param2[], u32 param3);
extern void FUN_020377E0(struct SaveBlock2 *sav2);
extern void FUN_0205ECD4(struct ScriptState *script_state);
THUMB_FUNC int MOD52_021D74E0()
THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused)
{
#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
MOD52_021D769C(0x4d, sav2);
@@ -30,24 +33,29 @@ THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
return 1;
}
THUMB_FUNC int MOD52_021D750C()
THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144);
return 1;
}
THUMB_FUNC int MOD52_021D7528()
THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused)
{
#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
MOD52_021D7604(0x4d, sav2, 1);
@@ -57,24 +65,29 @@ THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
return 1;
}
THUMB_FUNC int MOD52_021D7560()
THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C);
return 1;
}
THUMB_FUNC int MOD52_021D757C()
THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_0201681C(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
}
THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused)
{
#pragma unused(unused)
struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2);
@@ -93,8 +106,10 @@ THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
return 1;
}
THUMB_FUNC int MOD52_021D75E8()
THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
FUN_020168D0(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C);
@@ -150,498 +165,144 @@ THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2)
FUN_0205ECD4(SavArray_Flags_get(sav2));
}
const struct MOD52_Struct MOD52_021D76E8 = {
const struct Unk21DBE18 MOD52_021D76E8 = {
MOD52_021D74E0,
MOD52_021D74F8,
MOD52_021D750C,
0xFFFFFFFF,
};
const struct MOD52_Struct MOD52_021D76D8 = {
const struct Unk21DBE18 MOD52_021D76D8 = {
MOD52_021D7528,
MOD52_021D7540,
MOD52_021D7560,
0xFFFFFFFF,
};
const struct MOD52_Struct MOD52_021D76C8 = {
const struct Unk21DBE18 MOD52_021D76C8 = {
MOD52_021D757C,
MOD52_021D7594,
MOD52_021D75E8,
0xFFFFFFFF,
};
const u8 MOD52_021D76F8[] = {
0x9B,
0x00,
0x01,
0x00,
0x95,
0x00,
0x01,
0x00,
0x96,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x02,
0x00,
0xA5,
0x00,
0x02,
0x00,
0x95,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x02,
0x00,
0x9E,
0x00,
0x01,
0x00,
0xA7,
0x00,
0x02,
0x00,
0xA7,
0x00,
0x02,
0x00,
0xAA,
0x00,
0x01,
0x00,
0x95,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x01,
0x00,
0x98,
0x00,
0x01,
0x00,
0x98,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x01,
0x00,
0x95,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x01,
0x00,
0x9B,
0x00,
0x01,
0x00,
0xA5,
0x00,
0x01,
0x00,
0xA6,
0x00,
0x02,
0x00,
0xA4,
0x00,
0x02,
0x00,
0xA5,
0x00,
0x02,
0x00,
0xA8,
0x00,
0x02,
0x00,
0x9A,
0x00,
0x01,
0x00,
0x96,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x01,
0x00,
0x9C,
0x00,
0x01,
0x00,
0xA6,
0x00,
0x01,
0x00,
0xA6,
0x00,
0x01,
0x00,
0x9F,
0x00,
0x01,
0x00,
0x99,
0x00,
0x01,
0x00,
0x99,
0x00,
0x01,
0x00,
0xA4,
0x00,
0x01,
0x00,
0xA8,
0x00,
0x01,
0x00,
0x9E,
0x00,
0x01,
0x00,
0x96,
0x00,
0x01,
0x00,
0xA0,
0x00,
0x01,
0x00,
0xA2,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0x99,
0x00,
0x01,
0x00,
0xA3,
0x00,
0x01,
0x00,
0xAD,
0x00,
0x01,
0x00,
0x9E,
0x00,
0x01,
0x00,
0x99,
0x00,
0x01,
0x00,
0xAE,
0x00,
0x01,
0x00,
0x9D,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0xA8,
0x00,
0x01,
0x00,
0xA8,
0x00,
0x01,
0x00,
0xA8,
0x00,
0x01,
0x00,
0x9C,
0x00,
0x01,
0x00,
0x9C,
0x00,
0x01,
0x00,
0xA6,
0x00,
0x01,
0x00,
0xA6,
0x00,
0x01,
0x00,
0xA2,
0x00,
0x01,
0x00,
0xA3,
0x00,
0x01,
0x00,
0x98,
0x00,
0x01,
0x00,
0x98,
0x00,
0x01,
0x00,
0x95,
0x00,
0x01,
0x00,
0x9E,
0x00,
0x01,
0x00,
0x96,
0x00,
0x01,
0x00,
0xA9,
0x00,
0x01,
0x00,
0x97,
0x00,
0x02,
0x00,
0xA5,
0x00,
0x02,
0x00,
0xA0,
0x00,
0x01,
0x00,
0xA1,
0x00,
0x01,
0x00,
0x98,
0x00,
0x01,
0x00,
0x9C,
0x00,
0x01,
0x00,
0x9F,
0x00,
0x01,
0x00,
0xA8,
0x00,
0x02,
0x00,
0x9A,
0x00,
0x01,
0x00,
0x97,
0x00,
0x01,
0x00,
0xA1,
0x00,
0x01,
0x00,
0xAC,
0x00,
0x01,
0x00,
0xA0,
0x00,
0x02,
0x00,
0xA1,
0x00,
0x02,
0x00,
0xA2,
0x00,
0x02,
0x00,
0xAB,
0x00,
0x01,
0x00,
0x9E,
0x00,
0x02,
0x00,
0xA5,
0x00,
0x03,
0x00,
0xA6,
0x00,
0x03,
0x00,
0xA7,
0x00,
0x03,
0x00,
0xA9,
0x00,
0x01,
0x00,
0xA9,
0x00,
0x01,
0x00,
0xAC,
0x00,
0x02,
0x00,
0xAC,
0x00,
0x02,
0x00,
0xAA,
0x00,
0x01,
0x00,
0xAA,
0x00,
0x01,
0x00,
0xAE,
0x00,
0x01,
0x00,
0xAE,
0x00,
0x01,
0x00,
0xAB,
0x00,
0x01,
0x00,
0xAB,
0x00,
0x01,
0x00,
0xA9,
0x00,
0x01,
0x00,
0xA9,
0x00,
0x01,
0x00,
0xAC,
0x00,
0x01,
0x00,
0xAC,
0x00,
0x01,
0x00,
0xAE,
0x00,
0x01,
0x00,
0xAE,
0x00,
0x01,
0x00,
0xAD,
0x00,
0x01,
0x00,
0xAD,
0x00,
0x01,
0x00,
0xAB,
0x00,
0x01,
0x00,
0xAB,
0x00,
0x01,
0x00,
0x9D,
0x00,
0x01,
0x00,
0x9A,
0x00,
0x01,
0x00,
0xAB,
0x00,
0x02,
0x00,
0xAD,
0x00,
0x02,
0x00,
0xAA,
0x00,
0x02,
0x00,
0xAA,
0x00,
0x02,
0x00,
0xAD,
0x00,
0x01,
0x00,
0xAD,
0x00,
0x01,
0x00,
const u16 MOD52_021D76F8[] = {
ITEM_ORAN_BERRY, 1,
ITEM_CHERI_BERRY, 1,
ITEM_CHESTO_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_ORAN_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_RAZZ_BERRY, 2,
ITEM_BLUK_BERRY, 2,
ITEM_CHERI_BERRY, 1,
ITEM_ORAN_BERRY, 2,
ITEM_SITRUS_BERRY, 1,
ITEM_WEPEAR_BERRY, 2,
ITEM_WEPEAR_BERRY, 2,
ITEM_KELPSY_BERRY, 1,
ITEM_CHERI_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_ORAN_BERRY, 1,
ITEM_ORAN_BERRY, 1,
ITEM_RAWST_BERRY, 1,
ITEM_RAWST_BERRY, 1,
ITEM_RAZZ_BERRY, 1,
ITEM_RAZZ_BERRY, 1,
ITEM_CHERI_BERRY, 1,
ITEM_ORAN_BERRY, 1,
ITEM_ORAN_BERRY, 1,
ITEM_BLUK_BERRY, 1,
ITEM_NANAB_BERRY, 2,
ITEM_RAZZ_BERRY, 2,
ITEM_BLUK_BERRY, 2,
ITEM_PINAP_BERRY, 2,
ITEM_LEPPA_BERRY, 1,
ITEM_CHESTO_BERRY, 1,
ITEM_RAZZ_BERRY, 1,
ITEM_RAZZ_BERRY, 1,
ITEM_PERSIM_BERRY, 1,
ITEM_NANAB_BERRY, 1,
ITEM_NANAB_BERRY, 1,
ITEM_FIGY_BERRY, 1,
ITEM_ASPEAR_BERRY, 1,
ITEM_ASPEAR_BERRY, 1,
ITEM_RAZZ_BERRY, 1,
ITEM_PINAP_BERRY, 1,
ITEM_SITRUS_BERRY, 1,
ITEM_CHESTO_BERRY, 1,
ITEM_WIKI_BERRY, 1,
ITEM_AGUAV_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_ASPEAR_BERRY, 1,
ITEM_IAPAPA_BERRY, 1,
ITEM_GREPA_BERRY, 1,
ITEM_SITRUS_BERRY, 1,
ITEM_ASPEAR_BERRY, 1,
ITEM_TAMATO_BERRY, 1,
ITEM_LUM_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_PINAP_BERRY, 1,
ITEM_PINAP_BERRY, 1,
ITEM_PINAP_BERRY, 1,
ITEM_PERSIM_BERRY, 1,
ITEM_PERSIM_BERRY, 1,
ITEM_NANAB_BERRY, 1,
ITEM_NANAB_BERRY, 1,
ITEM_AGUAV_BERRY, 1,
ITEM_IAPAPA_BERRY, 1,
ITEM_RAWST_BERRY, 1,
ITEM_RAWST_BERRY, 1,
ITEM_CHERI_BERRY, 1,
ITEM_SITRUS_BERRY, 1,
ITEM_CHESTO_BERRY, 1,
ITEM_POMEG_BERRY, 1,
ITEM_PECHA_BERRY, 2,
ITEM_BLUK_BERRY, 2,
ITEM_WIKI_BERRY, 1,
ITEM_MAGO_BERRY, 1,
ITEM_RAWST_BERRY, 1,
ITEM_PERSIM_BERRY, 1,
ITEM_FIGY_BERRY, 1,
ITEM_PINAP_BERRY, 2,
ITEM_LEPPA_BERRY, 1,
ITEM_PECHA_BERRY, 1,
ITEM_MAGO_BERRY, 1,
ITEM_HONDEW_BERRY, 1,
ITEM_WIKI_BERRY, 2,
ITEM_MAGO_BERRY, 2,
ITEM_AGUAV_BERRY, 2,
ITEM_QUALOT_BERRY, 1,
ITEM_SITRUS_BERRY, 2,
ITEM_BLUK_BERRY, 3,
ITEM_NANAB_BERRY, 3,
ITEM_WEPEAR_BERRY, 3,
ITEM_POMEG_BERRY, 1,
ITEM_POMEG_BERRY, 1,
ITEM_HONDEW_BERRY, 2,
ITEM_HONDEW_BERRY, 2,
ITEM_KELPSY_BERRY, 1,
ITEM_KELPSY_BERRY, 1,
ITEM_TAMATO_BERRY, 1,
ITEM_TAMATO_BERRY, 1,
ITEM_QUALOT_BERRY, 1,
ITEM_QUALOT_BERRY, 1,
ITEM_POMEG_BERRY, 1,
ITEM_POMEG_BERRY, 1,
ITEM_HONDEW_BERRY, 1,
ITEM_HONDEW_BERRY, 1,
ITEM_TAMATO_BERRY, 1,
ITEM_TAMATO_BERRY, 1,
ITEM_GREPA_BERRY, 1,
ITEM_GREPA_BERRY, 1,
ITEM_QUALOT_BERRY, 1,
ITEM_QUALOT_BERRY, 1,
ITEM_LUM_BERRY, 1,
ITEM_LEPPA_BERRY, 1,
ITEM_QUALOT_BERRY, 2,
ITEM_GREPA_BERRY, 2,
ITEM_KELPSY_BERRY, 2,
ITEM_KELPSY_BERRY, 2,
ITEM_GREPA_BERRY, 1,
ITEM_GREPA_BERRY, 1,
};