From 1d675665dbbe5574a979a260f3b0542b9e4d6d86 Mon Sep 17 00:00:00 2001 From: Kelebek1 Date: Sat, 7 Sep 2024 06:59:54 +0100 Subject: [PATCH] 29BA0 --- include/functions.h | 7 - include/global.h | 8 +- include/macros.h | 22 + include/sections.h | 60 ++ include/variables.h | 125 ++-- linker_scripts/us/symbol_addrs.txt | 3 +- src/19840.h | 3 +- src/22630.h | 2 + src/26820.h | 12 + src/29BA0.c | 862 +++++++++++++++++++++++++-- src/29BA0.h | 77 +++ src/2C1C0.c | 2 +- src/2C1C0.h | 12 + src/2E460.h | 8 + src/2FEA0.c | 2 +- src/2FEA0.h | 8 + src/30640.h | 1 + src/3FB0.c | 63 +- src/3FB0.h | 24 +- src/DDC0.h | 22 + src/E1C0.c | 13 +- src/E1C0.h | 10 + src/fragments/1/fragment1_7F9A0.c | 1 - src/fragments/1/fragment1_86920.c | 1 - src/fragments/1/fragment1_86C30.c | 1 - src/fragments/1/fragment1_86CB0.c | 1 - src/fragments/10/fragment10.c | 11 +- src/fragments/11/fragment11.c | 13 +- src/fragments/14/fragment14_144300.c | 1 - src/fragments/14/fragment14_1462A0.c | 1 - src/fragments/14/fragment14_14A030.c | 1 - src/fragments/15/fragment15_14CA70.c | 1 - src/fragments/15/fragment15_14EC80.c | 1 - src/fragments/15/fragment15_150AC0.c | 1 - src/fragments/16/fragment16_158A00.c | 1 - src/fragments/16/fragment16_15A2A0.c | 1 - src/fragments/16/fragment16_15A2B0.c | 1 - src/fragments/16/fragment16_15AD80.c | 1 - src/fragments/17/fragment17_15F9B0.c | 1 - src/fragments/17/fragment17_15FA60.c | 1 - src/fragments/17/fragment17_160CB0.c | 1 - src/fragments/17/fragment17_161000.c | 1 - src/fragments/17/fragment17_161590.c | 1 - src/fragments/17/fragment17_161E60.c | 1 - src/fragments/17/fragment17_164B00.c | 1 - src/fragments/17/fragment17_165640.c | 1 - src/fragments/17/fragment17_168110.c | 1 - src/fragments/17/fragment17_1687E0.c | 1 - src/fragments/17/fragment17_169510.c | 1 - src/fragments/17/fragment17_169A40.c | 1 - src/fragments/17/fragment17_16A0E0.c | 1 - src/fragments/23/fragment23_1A8590.c | 1 - src/fragments/23/fragment23_1A8800.c | 1 - src/fragments/23/fragment23_1A9780.c | 1 - src/fragments/23/fragment23_1AE680.c | 1 - src/fragments/23/fragment23_1B4EA0.c | 1 - src/fragments/23/fragment23_1BCF10.c | 1 - src/fragments/24/fragment24_1CEA00.c | 1 - src/fragments/24/fragment24_1E46B0.c | 1 - src/fragments/28/fragment28_214920.c | 1 - src/fragments/28/fragment28_2190D0.c | 1 - src/fragments/3/fragment3_1189B0.c | 1 - src/fragments/3/fragment3_1193E0.c | 1 - src/fragments/3/fragment3_119FB0.c | 1 - src/fragments/3/fragment3_11BBF0.c | 1 - src/fragments/3/fragment3_11BF90.c | 1 - src/fragments/31/fragment31_2554C0.c | 1 - src/fragments/31/fragment31_2557A0.c | 1 - src/fragments/31/fragment31_2558B0.c | 1 - src/fragments/31/fragment31_257750.c | 1 - src/fragments/31/fragment31_2577F0.c | 1 - src/fragments/31/fragment31_257AF0.c | 1 - src/fragments/31/fragment31_257DE0.c | 1 - src/fragments/31/fragment31_257EC0.c | 1 - src/fragments/31/fragment31_257FA0.c | 1 - src/fragments/31/fragment31_258080.c | 1 - src/fragments/31/fragment31_259030.c | 1 - src/fragments/31/fragment31_2590C0.c | 1 - src/fragments/34/fragment34_261F90.c | 1 - src/fragments/34/fragment34_264380.c | 1 - src/fragments/34/fragment34_269820.c | 1 - src/fragments/34/fragment34_26E540.c | 1 - src/fragments/34/fragment34_26E6D0.c | 1 - src/fragments/34/fragment34_26F9B0.c | 1 - src/fragments/39/fragment39_27BCC0.c | 1 - src/fragments/39/fragment39_2804C0.c | 1 - src/fragments/39/fragment39_281C40.c | 1 - src/fragments/41/fragment41_287ED0.c | 1 - src/fragments/41/fragment41_289240.c | 1 - src/fragments/41/fragment41_28D1A0.c | 1 - src/fragments/41/fragment41_28ED00.c | 1 - src/fragments/41/fragment41_291D60.c | 1 - src/fragments/41/fragment41_2942C0.c | 1 - src/fragments/43/fragment43_2A1B50.c | 1 - src/fragments/43/fragment43_2A3E70.c | 1 - src/fragments/43/fragment43_2A3F60.c | 1 - src/fragments/47/fragment47_2AD910.c | 1 - src/fragments/47/fragment47_2AE1F0.c | 1 - src/fragments/47/fragment47_2AFDB0.c | 1 - src/fragments/55/fragment55_2BED40.c | 1 - src/fragments/55/fragment55_2C0F90.c | 1 - src/fragments/55/fragment55_2C13F0.c | 1 - src/fragments/6/fragment6.c | 68 ++- src/fragments/61/fragment61_2D78B0.c | 1 - src/fragments/61/fragment61_2DB900.c | 1 - src/fragments/61/fragment61_2DD710.c | 1 - src/fragments/61/fragment61_2DFB60.c | 1 - src/fragments/61/fragment61_2E2C20.c | 1 - src/fragments/62/fragment62_2EA8E0.c | 1 - src/fragments/62/fragment62_2EC3C0.c | 1 - src/fragments/62/fragment62_2F1D60.c | 1 - src/fragments/62/fragment62_2F23A0.c | 1 - src/fragments/62/fragment62_2F3CB0.c | 1 - src/fragments/62/fragment62_2F6930.c | 1 - src/fragments/62/fragment62_2F74E0.c | 1 - src/fragments/62/fragment62_2FA4D0.c | 1 - src/fragments/62/fragment62_304060.c | 1 - src/fragments/62/fragment62_3055E0.c | 1 - src/fragments/62/fragment62_309ED0.c | 1 - src/fragments/62/fragment62_313250.c | 1 - src/fragments/62/fragment62_315830.c | 1 - src/fragments/62/fragment62_315D50.c | 1 - src/fragments/62/fragment62_317E70.c | 1 - src/fragments/62/fragment62_31A7E0.c | 1 - src/fragments/62/fragment62_31AA30.c | 1 - src/fragments/62/fragment62_31C660.c | 1 - src/fragments/62/fragment62_3223B0.c | 1 - src/fragments/62/fragment62_3274D0.c | 1 - src/fragments/62/fragment62_328F10.c | 1 - src/fragments/62/fragment62_32A640.c | 1 - src/fragments/62/fragment62_32B680.c | 1 - src/fragments/62/fragment62_3438B0.c | 1 - src/fragments/62/fragment62_343BA0.c | 1 - src/fragments/62/fragment62_34E1A0.c | 1 - src/fragments/62/fragment62_34F1A0.c | 1 - src/fragments/62/fragment62_3502D0.c | 1 - src/fragments/62/fragment62_3512D0.c | 1 - src/fragments/62/fragment62_351F20.c | 1 - src/fragments/62/fragment62_352570.c | 1 - src/fragments/62/fragment62_353370.c | 1 - src/fragments/62/fragment62_3540B0.c | 1 - src/fragments/62/fragment62_355A00.c | 1 - src/fragments/62/fragment62_356730.c | 1 - src/fragments/62/fragment62_357C30.c | 1 - src/fragments/62/fragment62_3597B0.c | 1 - src/fragments/62/fragment62_359F80.c | 1 - src/fragments/62/fragment62_359F90.c | 1 - src/fragments/62/fragment62_35DF70.c | 1 - src/fragments/62/fragment62_361050.c | 1 - src/fragments/63/fragment63_394120.c | 1 - src/fragments/63/fragment63_3974E0.c | 1 - src/fragments/63/fragment63_397B10.c | 1 - src/fragments/63/fragment63_39AC50.c | 1 - src/fragments/63/fragment63_39BFB0.c | 1 - src/fragments/63/fragment63_3A0010.c | 1 - src/fragments/7/fragment7.c | 16 +- src/fragments/8/fragment8.c | 15 +- src/fragments/9/fragment9.c | 14 +- src/gb_tower.c | 1 + src/main.c | 2 +- src/memmap.h | 19 +- src/stage_loader.c | 6 + src/stage_loader.h | 69 ++- yamls/us/rom.yaml | 10 +- 164 files changed, 1345 insertions(+), 375 deletions(-) create mode 100644 src/29BA0.h create mode 100644 src/2C1C0.h create mode 100644 src/2E460.h create mode 100644 src/2FEA0.h create mode 100644 src/DDC0.h create mode 100644 src/E1C0.h diff --git a/include/functions.h b/include/functions.h index d527df9..18f0d04 100644 --- a/include/functions.h +++ b/include/functions.h @@ -9,10 +9,6 @@ s32 func_8005A990(OSPiHandle *); // bcopy.s void _bcopy(void *, void *, u32); -// 3FB0.s -void func_80003B30(void *, s32, s32, s32); // types unknown -void func_80004200(); - // 5580.s void func_80004CC0(OSThread *, s32, s32); void func_80004CF4(void *); // types unknown @@ -38,9 +34,6 @@ void func_8000D564(void); // E570.s void func_8000D970(OSPfs *); -// 29BA0.s -void func_8002B274(s32, s32); - // exception_set.s void set_watch_lohi(s32); diff --git a/include/global.h b/include/global.h index 5e8a8bc..2fb469d 100644 --- a/include/global.h +++ b/include/global.h @@ -122,10 +122,10 @@ typedef struct unk_D_86002F30 { /* 0x08 */ unk_D_86002F58_004_000_004* unk_08[4]; } unk_D_86002F30; // size = 0x18 ?? -struct UnkInputStruct8000D738 { - s32 unk0; - s32 unk4; -}; +typedef struct UnkInputStruct8000D738 { + /* 0x00 */ s16 unk_00; + /* 0x00 */ s32 unk_04; +} UnkInputStruct8000D738; // size = 0x8 struct UnkStruct800AA660 { /* 0x0000 */ OSThread thread; diff --git a/include/macros.h b/include/macros.h index 8ea150e..d75d1f2 100644 --- a/include/macros.h +++ b/include/macros.h @@ -50,4 +50,26 @@ #define ABS(x) ((x) >= 0 ? (x) : -(x)) #define ABS_ALT(x) ((x) < 0 ? -(x) : (x)) +#define FRAGMENT_ID(fragment) ((((u32)fragment##_TEXT_START & 0x0FF00000) >> 0x14) - 0x10) +#define ASSET_ID(asset) (((u32)asset & 0x0F000000) >> 0x18) + +#define FRAGMENT_LOAD(load_func, fragment) ( \ + load_func(FRAGMENT_ID(fragment), fragment##_ROM_START, fragment##_relocs_ROM_END) \ +) + +#define FRAGMENT_LOAD_AND_CALL(fragment, arg0, arg1) (\ + func_80029008(FRAGMENT_ID(fragment), fragment##_ROM_START, fragment##_relocs_ROM_END, arg0, arg1) \ +) + +#define FRAGMENT_LOAD_AND_CALL2(fragment, arg0, arg1) (\ + func_80029048(FRAGMENT_ID(fragment), fragment##_ROM_START, fragment##_relocs_ROM_END, arg0, arg1) \ +) + +#define ASSET_LOAD(vram, rom, arg0) (\ + func_80004258(ASSET_ID(vram), rom##_ROM_START, rom##_ROM_END, arg0) \ +) + +#define ASSET_LOAD2(vram, rom, arg0, arg1) (\ + func_800044F4(rom##_ROM_START, rom##_ROM_END, arg0, arg1) \ +) #endif diff --git a/include/sections.h b/include/sections.h index 41f2679..542c54c 100644 --- a/include/sections.h +++ b/include/sections.h @@ -10,16 +10,19 @@ extern u8 fragment1_ROM_END[]; extern u8 fragment2_TEXT_START[]; extern u8 fragment2_ROM_START[]; extern u8 fragment2_ROM_END[]; +extern u8 fragment2_relocs_ROM_END[]; // fragment 3 extern u8 fragment3_TEXT_START[]; extern u8 fragment3_ROM_START[]; extern u8 fragment3_ROM_END[]; +extern u8 fragment3_relocs_ROM_END[]; // fragment 4 extern u8 fragment4_TEXT_START[]; extern u8 fragment4_ROM_START[]; extern u8 fragment4_ROM_END[]; +extern u8 fragment4_relocs_ROM_END[]; // fragment 5 extern u8 fragment5_TEXT_START[]; @@ -40,6 +43,7 @@ extern u8 fragment7_ROM_END[]; extern u8 fragment8_TEXT_START[]; extern u8 fragment8_ROM_START[]; extern u8 fragment8_ROM_END[]; +extern u8 fragment8_relocs_ROM_END[]; // fragment 9 extern u8 fragment9_TEXT_START[]; @@ -70,6 +74,7 @@ extern u8 fragment13_ROM_END[]; extern u8 fragment14_TEXT_START[]; extern u8 fragment14_ROM_START[]; extern u8 fragment14_ROM_END[]; +extern u8 fragment14_relocs_ROM_END[]; // fragment 15 extern u8 fragment15_TEXT_START[]; @@ -80,16 +85,19 @@ extern u8 fragment15_ROM_END[]; extern u8 fragment16_TEXT_START[]; extern u8 fragment16_ROM_START[]; extern u8 fragment16_ROM_END[]; +extern u8 fragment16_relocs_ROM_END[]; // fragment 17 extern u8 fragment17_TEXT_START[]; extern u8 fragment17_ROM_START[]; extern u8 fragment17_ROM_END[]; +extern u8 fragment17_relocs_ROM_END[]; // fragment 18 extern u8 fragment18_TEXT_START[]; extern u8 fragment18_ROM_START[]; extern u8 fragment18_ROM_END[]; +extern u8 fragment18_relocs_ROM_END[]; // fragment 19 extern u8 fragment19_TEXT_START[]; @@ -150,47 +158,56 @@ extern u8 fragment29_ROM_END[]; extern u8 fragment30_TEXT_START[]; extern u8 fragment30_ROM_START[]; extern u8 fragment30_ROM_END[]; +extern u8 fragment30_relocs_ROM_END[]; // fragment 31 extern u8 fragment31_TEXT_START[]; extern u8 fragment31_ROM_START[]; extern u8 fragment31_ROM_END[]; extern u8 fragment31_VRAM[]; +extern u8 fragment31_relocs_ROM_END[]; // fragment 32 extern u8 fragment32_TEXT_START[]; extern u8 fragment32_ROM_START[]; extern u8 fragment32_ROM_END[]; +extern u8 fragment32_relocs_ROM_END[]; // fragment 33 extern u8 fragment33_TEXT_START[]; extern u8 fragment33_ROM_START[]; extern u8 fragment33_ROM_END[]; +extern u8 fragment33_relocs_ROM_END[]; // fragment 34 extern u8 fragment34_TEXT_START[]; extern u8 fragment34_ROM_START[]; extern u8 fragment34_ROM_END[]; +extern u8 fragment34_relocs_ROM_END[]; // fragment 35 extern u8 fragment35_TEXT_START[]; extern u8 fragment35_ROM_START[]; extern u8 fragment35_ROM_END[]; +extern u8 fragment35_relocs_ROM_END[]; // fragment 36 extern u8 fragment36_TEXT_START[]; extern u8 fragment36_ROM_START[]; extern u8 fragment36_ROM_END[]; +extern u8 fragment36_relocs_ROM_END[]; // fragment 37 extern u8 fragment37_TEXT_START[]; extern u8 fragment37_ROM_START[]; extern u8 fragment37_ROM_END[]; +extern u8 fragment37_relocs_ROM_END[]; // fragment 38 extern u8 fragment38_TEXT_START[]; extern u8 fragment38_ROM_START[]; extern u8 fragment38_ROM_END[]; +extern u8 fragment38_relocs_ROM_END[]; // fragment 39 extern u8 fragment39_TEXT_START[]; @@ -201,6 +218,7 @@ extern u8 fragment39_ROM_END[]; extern u8 fragment40_TEXT_START[]; extern u8 fragment40_ROM_START[]; extern u8 fragment40_ROM_END[]; +extern u8 fragment40_relocs_ROM_END[]; // fragment 41 extern u8 fragment41_TEXT_START[]; @@ -216,6 +234,7 @@ extern u8 fragment42_ROM_END[]; extern u8 fragment43_TEXT_START[]; extern u8 fragment43_ROM_START[]; extern u8 fragment43_ROM_END[]; +extern u8 fragment43_relocs_ROM_END[]; // fragment 44 extern u8 fragment44_TEXT_START[]; @@ -251,6 +270,7 @@ extern u8 fragment49_ROM_END[]; extern u8 fragment50_TEXT_START[]; extern u8 fragment50_ROM_START[]; extern u8 fragment50_ROM_END[]; +extern u8 fragment50_relocs_ROM_END[]; // fragment 51 extern u8 fragment51_TEXT_START[]; @@ -266,11 +286,13 @@ extern u8 fragment52_ROM_END[]; extern u8 fragment53_TEXT_START[]; extern u8 fragment53_ROM_START[]; extern u8 fragment53_ROM_END[]; +extern u8 fragment53_relocs_ROM_END[]; // fragment 54 extern u8 fragment54_TEXT_START[]; extern u8 fragment54_ROM_START[]; extern u8 fragment54_ROM_END[]; +extern u8 fragment54_relocs_ROM_END[]; // fragment 55 extern u8 fragment55_TEXT_START[]; @@ -281,61 +303,73 @@ extern u8 fragment55_ROM_END[]; extern u8 fragment56_TEXT_START[]; extern u8 fragment56_ROM_START[]; extern u8 fragment56_ROM_END[]; +extern u8 fragment56_relocs_ROM_END[]; // fragment 57 extern u8 fragment57_TEXT_START[]; extern u8 fragment57_ROM_START[]; extern u8 fragment57_ROM_END[]; +extern u8 fragment57_relocs_ROM_END[]; // fragment 58 extern u8 fragment58_TEXT_START[]; extern u8 fragment58_ROM_START[]; extern u8 fragment58_ROM_END[]; +extern u8 fragment58_relocs_ROM_END[]; // fragment 59 extern u8 fragment59_TEXT_START[]; extern u8 fragment59_ROM_START[]; extern u8 fragment59_ROM_END[]; +extern u8 fragment59_relocs_ROM_END[]; // fragment 60 extern u8 fragment60_TEXT_START[]; extern u8 fragment60_ROM_START[]; extern u8 fragment60_ROM_END[]; +extern u8 fragment60_relocs_ROM_END[]; // fragment 61 extern u8 fragment61_TEXT_START[]; extern u8 fragment61_ROM_START[]; extern u8 fragment61_ROM_END[]; +extern u8 fragment61_relocs_ROM_END[]; // fragment 62 extern u8 fragment62_TEXT_START[]; extern u8 fragment62_ROM_START[]; extern u8 fragment62_ROM_END[]; +extern u8 fragment62_relocs_ROM_END[]; // fragment 63 extern u8 fragment63_TEXT_START[]; extern u8 fragment63_ROM_START[]; extern u8 fragment63_ROM_END[]; +extern u8 fragment63_relocs_ROM_END[]; // fragment 64 extern u8 fragment64_TEXT_START[]; extern u8 fragment64_ROM_START[]; extern u8 fragment64_ROM_END[]; +extern u8 fragment64_relocs_ROM_END[]; // fragment 65 extern u8 fragment65_TEXT_START[]; extern u8 fragment65_ROM_START[]; extern u8 fragment65_ROM_END[]; +extern u8 fragment65_relocs_ROM_END[]; // fragment 66 extern u8 fragment66_TEXT_START[]; extern u8 fragment66_ROM_START[]; extern u8 fragment66_ROM_END[]; +extern u8 fragment66_relocs_ROM_END[]; // fragment 67 extern u8 fragment67_TEXT_START[]; extern u8 fragment67_ROM_START[]; extern u8 fragment67_ROM_END[]; +extern u8 fragment67_relocs_ROM_END[]; // fragment 68 extern u8 fragment68_TEXT_START[]; @@ -361,6 +395,7 @@ extern u8 fragment71_ROM_END[]; extern u8 fragment72_TEXT_START[]; extern u8 fragment72_ROM_START[]; extern u8 fragment72_ROM_END[]; +extern u8 fragment72_relocs_ROM_END[]; // fragment 73 extern u8 fragment73_TEXT_START[]; @@ -376,6 +411,7 @@ extern u8 fragment74_ROM_END[]; extern u8 fragment75_TEXT_START[]; extern u8 fragment75_ROM_START[]; extern u8 fragment75_ROM_END[]; +extern u8 fragment75_relocs_ROM_END[]; // fragment 76 extern u8 fragment76_TEXT_START[]; @@ -390,29 +426,53 @@ extern u8 fragment77_ROM_END[]; // Asset externs extern u8 _3B96B0_ROM_START[]; +extern u8 _3B96B0_ROM_END[]; extern u8 _3BA190_ROM_START[]; +extern u8 _3BA190_ROM_END[]; extern u8 _3CB130_ROM_START[]; +extern u8 _3CB130_ROM_END[]; extern u8 _45B580_ROM_START[]; +extern u8 _45B580_ROM_END[]; extern u8 _4A21C0_ROM_START[]; +extern u8 _4A21C0_ROM_END[]; extern u8 _4BD6B0_ROM_START[]; +extern u8 _4BD6B0_ROM_END[]; extern u8 _4BE810_ROM_START[]; +extern u8 _4BE810_ROM_END[]; extern u8 _4D1330_ROM_START[]; +extern u8 _4D1330_ROM_END[]; extern u8 _4EB0C0_ROM_START[]; +extern u8 _4EB0C0_ROM_END[]; extern u8 _5046B0_ROM_START[]; +extern u8 _5046B0_ROM_END[]; extern u8 _52ABA0_ROM_START[]; +extern u8 _52ABA0_ROM_END[]; extern u8 _52F6D0_ROM_START[]; +extern u8 _52F6D0_ROM_END[]; extern u8 _533B20_ROM_START[]; +extern u8 _533B20_ROM_END[]; extern u8 _56E7D0_ROM_START[]; +extern u8 _56E7D0_ROM_END[]; extern u8 _5C7A70_ROM_START[]; +extern u8 _5C7A70_ROM_END[]; extern u8 _5C7AD0_ROM_START[]; +extern u8 _5C7AD0_ROM_END[]; extern u8 _5F6790_ROM_START[]; +extern u8 _5F6790_ROM_END[]; extern u8 _5F92A0_ROM_START[]; +extern u8 _5F92A0_ROM_END[]; extern u8 _5FFC30_ROM_START[]; +extern u8 _5FFC30_ROM_END[]; extern u8 _6C4CE0_ROM_START[]; +extern u8 _6C4CE0_ROM_END[]; extern u8 _6C4E50_ROM_START[]; +extern u8 _6C4E50_ROM_END[]; extern u8 D_124570[]; extern u32 fragment1_relocs_ROM_END[]; +extern u8 _675FA0_ROM_START[]; +extern u8 _675FA0_ROM_END[]; + #endif // _SECTIONS_H_ diff --git a/include/variables.h b/include/variables.h index d1f8357..9cd2364 100644 --- a/include/variables.h +++ b/include/variables.h @@ -15,29 +15,31 @@ #define POOL_END_6MB 0x80600000 // game states -#define STATE_N64_LOGO_INTRO 0x01 // N64 Logo + Intro -#define STATE_TITLE_SCREEN 0x02 // Title screen -#define STATE_N64DD_BOOT_UNUSED 0x03 // seems to be unused, but boots an N64DD disk. Leftover from JP. -#define STATE_MENU_SELECT 0x04 // Menu Select (select Battle Now!, POKeMON Stadium, etc) -#define STATE_AREA_SELECT 0x10 // Area Select (select Stadium, GB Tower, Gym Leader Castle, etc) -#define STATE_GALLERY 0x11 // Gallery -#define STATE_EVENT_BATTLE 0x12 // Event Battle -#define STATE_OPTIONS 0x13 // Options -#define STATE_FAST_N64_LOGO 0x40 // N64 Logo but no Intro. The Sticker Station might use this for booting quickly and into Gallery mode. -#define STATE_STADIUM_MENU 0x20 // POKeMON Stadium (the main Stadium mode) -#define STATE_FREE_BATTLE 0x21 // Free Battle -#define STATE_VS_MEWTWO 0x22 // VS Mewtwo -#define STATE_KIDS_CLUB 0x23 // Kids Club -#define STATE_VICTORY_PALACE 0x24 // Victory Palace -#define STATE_POKEMON_LAB 0x25 // POKeMON Lab -#define STATE_GB_TOWER 0x26 // GB Tower -#define STATE_GYM_LEADER_CASTLE 0x27 // Gym Leader Castle -#define STATE_BATTLE_NOW_1P 0x28 // Battle Now! (1P) -#define STATE_BATTLE_NOW_2P 0x29 // Battle Now! (2P) -#define STATE_BATTLE_FROM_EVENT 0x2A // Battle menu from Event Battle -#define STATE_STUBBED_DEBUG 0x80 // stubbed/removed debug menu. This could have been the Early Pokedex Menu seen in the JP version. -#define STATE_FAST_BATTLE 0x81 // most likely the P97/P98 mode(s) and uses GB Pak 1 and 2 for the teams for an immediate battle; skips even the VS screen and Battle Rule screen. However, the music/stadium used is probably set by some other menu, because it seems to use the outdoor Free Battle area + Poke Cup 1-3, which isnt correct. -#define STATE_KIDS_CLUB_TITLE 0x82 // Kids Club, but it returns to the title screen. Possibly for a Kiosk/demo version. +typedef enum { + STATE_N64_LOGO_INTRO = 0x01, // N64 Logo + Intro + STATE_TITLE_SCREEN = 0x02, // Title screen + STATE_N64DD_BOOT_UNUSED = 0x03, // seems to be unused, but boots an N64DD disk. Leftover from JP. + STATE_MENU_SELECT = 0x04, // Menu Select (select Battle Now!, POKeMON Stadium, etc) + STATE_AREA_SELECT = 0x10, // Area Select (select Stadium, GB Tower, Gym Leader Castle, etc) + STATE_GALLERY = 0x11, // Gallery + STATE_EVENT_BATTLE = 0x12, // Event Battle + STATE_OPTIONS = 0x13, // Options + STATE_FAST_N64_LOGO = 0x40, // N64 Logo but no Intro. The Sticker Station might use this for booting quickly and into Gallery mode. + STATE_STADIUM_MENU = 0x20, // POKeMON Stadium (the main Stadium mode) + STATE_FREE_BATTLE = 0x21, // Free Battle + STATE_VS_MEWTWO = 0x22, // VS Mewtwo + STATE_KIDS_CLUB = 0x23, // Kids Club + STATE_VICTORY_PALACE = 0x24, // Victory Palace + STATE_POKEMON_LAB = 0x25, // POKeMON Lab + STATE_GB_TOWER = 0x26, // GB Tower + STATE_GYM_LEADER_CASTLE = 0x27, // Gym Leader Castle + STATE_BATTLE_NOW_1P = 0x28, // Battle Now! (1P) + STATE_BATTLE_NOW_2P = 0x29, // Battle Now! (2P) + STATE_BATTLE_FROM_EVENT = 0x2A, // Battle menu from Event Battle + STATE_STUBBED_DEBUG = 0x80, // stubbed/removed debug menu. This could have been the Early Pokedex Menu seen in the JP version. + STATE_FAST_BATTLE = 0x81, // most likely the P97/P98 mode(s) and uses GB Pak 1 and 2 for the teams for an immediate battle; skips even the VS screen and Battle Rule screen. However, the music/stadium used is probably set by some other menu, because it seems to use the outdoor Free Battle area + Poke Cup 1-3, which isnt correct. + STATE_KIDS_CLUB_TITLE = 0x82, // Kids Club, but it returns to the title screen. Possibly for a Kiosk/demo version. +} GameState; /* * Dynamic heap with an indetermate amount of space. This pool can either end at 4MB or @@ -48,17 +50,19 @@ extern u8 gPool[]; extern Gfx* gDisplayListHead; -extern u32 D_1000000; -extern u32 D_3000000; -extern u32 D_4000000; -extern u32 D_4000008; -extern u32 D_4000810; -extern u32 D_4001018; -extern u32 D_4001820; -extern u32 D_5000000; -extern u32 D_6000000; -extern u32 D_81000000; -extern u32 D_8D000000; +extern u8 D_1000000[]; +extern u8 D_3000000[]; +extern u8 D_4000000[]; +extern u8 D_4000008[]; +extern u8 D_4000810[]; +extern u8 D_4001018[]; +extern u8 D_4001820[]; +extern u8 D_5000000[]; +extern u8 D_6000000[]; +extern u8 D_8D000000[]; + +extern void* D_800AA688; + typedef struct unk_D_80068BA0 { /* 0x00 */ char pad00[0x2]; @@ -76,44 +80,17 @@ extern unk_D_80068BA0* D_80068BAC; extern Gfx D_8006F518[]; extern Gfx D_8006F630[]; -typedef struct unk_D_800A7450 { - /* 0x00 */ u8 unk_00; - /* 0x01 */ u8 unk_01; - /* 0x02 */ u8 unk_02; - /* 0x03 */ u8 unk_03; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; - /* 0x0C */ void* unk_0C; -} unk_D_800A7450; // size >= 0x10 -extern unk_D_800A7450 D_800A7450; - -extern Mtx D_800A7468; -extern s32 gShowCPUProfiler; -extern s32 gShowMEMProfiler; - - -typedef struct unk_func_80007444 { - /* 0x00 */ s16 unk_00; - /* 0x02 */ s16 unk_02; - /* 0x04 */ s16 unk_04; - /* 0x06 */ s16 unk_06; - /* 0x08 */ s16 unk_08; - /* 0x0A */ s16 unk_0A; - /* 0x0C */ s8 unk_0C; - /* 0x0D */ s8 unk_0D; - /* 0x0E */ s8 unk_0E; - /* 0x0F */ s8 unk_0F; - /* 0x10 */ s8 unk_10; - /* 0x11 */ u8 unk_11; - /* 0x12 */ u8 unk_12; - /* 0x13 */ u8 unk_13; - /* 0x14 */ u16 unk_14; - /* 0x16 */ s8 unk_16; - /* 0x18 */ void* unk_18[3]; -} unk_func_80007444; // size = 0x24 -extern unk_func_80007444* D_800A7464; - -extern Gfx* D_800A74B0; +extern u8 D_82000000; +extern u8 D_81400000; +extern u8 D_86B00000; +extern u8 D_87800000; +extern u8 D_87900000; +extern u8 D_82100000; +extern u8 D_84300000; +extern u8 D_86200000; +extern u8 D_86800000; +extern u8 D_86C00000; +extern u8 D_87A00000; typedef struct unk_D_800A7440 { /* 0x00 */ s16 x1; @@ -244,8 +221,4 @@ extern u8 D_87B000CC; extern u8 D_87B000D0; extern u8 D_87B000D4; -extern s32 gCurrentGameState; -extern s32 gLastGameState; -extern s8 D_800AF732; - #endif diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index ab32fad..ab401a3 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -252,5 +252,4 @@ D_87B000F2 = 0x87B000F2; D_87B000F4 = 0x87B000F4; D_86402848 = 0x86402848; gCurrentGameState = 0x80075668; // size:0x4 -gLastGameState = 0x8007566C; // size:0x4 - +D_800AE540 = 0x800AE540; // size:0x1200 diff --git a/src/19840.h b/src/19840.h index 16d8d02..f95e8f7 100644 --- a/src/19840.h +++ b/src/19840.h @@ -22,14 +22,15 @@ typedef struct unk_func_8001C248 { /* 0x024 */ s32 unk_024; } unk_func_8001C248; +void func_800196DC(void); void func_8001987C(void); +void func_800198E4(unk_D_86002F58_004_000_010*, u16, s32); void func_80019A7C(unk_D_86002F58_004_000_010*, s32, s32, unk_func_8001C248*); s32 func_80019C08(unk_D_86002F58_004_000_010*, unk_func_8001C248*); s32 func_80019C58(unk_D_86002F58_004_000_010*, unk_func_8001C248*); s32 func_80019CA8(unk_D_86002F58_004_000_010*); void func_80019CE0(unk_D_86002F58_004_000_010*); unk_D_86002F30* func_80019D18(s32); -void func_800198E4(unk_D_86002F58_004_000_010*, u16, s32); #endif // _19840_H_ diff --git a/src/22630.h b/src/22630.h index 241416e..0b27672 100644 --- a/src/22630.h +++ b/src/22630.h @@ -4,6 +4,8 @@ #include "global.h" void func_80021CA4(char*, u8); +s32 func_8002311C(s32); +void func_80024040(s16); #endif // _6BC0_H_ diff --git a/src/26820.h b/src/26820.h index f81f02e..4b6e887 100644 --- a/src/26820.h +++ b/src/26820.h @@ -3,7 +3,19 @@ #include "global.h" +typedef struct unk_func_8002A728 { + /* 0x00 */ s16 unk_00; + /* 0x04 */ u32* unk_04; +} unk_func_8002A728; // size = 0x8 + +typedef struct unk_func_80027F24 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ unk_func_8002A728* unk_04; +} unk_func_80027F24; // size = 0x8 + void func_80026684(s32, s32); +void func_80027F24(unk_func_80027F24*); +void func_80027F40(unk_func_80027F24*); void func_800280D4(s32); void func_800284B4(s32); void func_80028AFC(s32); diff --git a/src/29BA0.c b/src/29BA0.c index 7822101..0013505 100644 --- a/src/29BA0.c +++ b/src/29BA0.c @@ -1,5 +1,38 @@ -#include "global.h" -#include "memory.h" +#include "29BA0.h" +#include "include/functions.h" +#include "src/20330.h" +#include "src/26820.h" +#include "src/373A0.h" +#include "src/30640.h" +#include "src/22630.h" +#include "src/3FB0.h" +#include "src/6A40.h" +#include "src/DDC0.h" +#include "src/2C1C0.h" +#include "src/26820.h" +#include "src/2FEA0.h" +#include "src/2E460.h" +#include "src/E1C0.h" +#include "src/19840.h" +#include "src/controller.h" +#include "src/dp_intro.h" +#include "src/gb_tower.h" +#include "src/memory.h" +#include "src/rsp.h" +#include "src/stage_loader.h" +#include "lib/ultralib/include/PR/os_internal_reg.h" + +static s32 pad_D_80075660 = 0; +static s32 pad_D_80075664 = 0; +s32 gCurrentGameState = STATE_N64_LOGO_INTRO; +static s32 gLastGameState = STATE_N64_LOGO_INTRO; +static s32 pad_D_80075670 = 0; +static s16 D_80075674 = 0; +static s16 D_80075678 = 0; +static s32 D_8007567C = 0; + +unk_D_800AE520 D_800AE520; +unk_D_800AE540 D_800AE540; s32 Game_DoCopyProtection(s32 state) { u32 intr = osSetIntMask(1); @@ -8,131 +41,830 @@ s32 Game_DoCopyProtection(s32 state) { if (!(HW_REG(PI_STATUS_REG, u32) & 3) && ((*(u32*)0xB0000E38 & 0xFFFF) != 0x828A)) { state = -0x10; } + osSetIntMask(intr); + return state; } -s32 func_80029008(s32 arg0, s32 romStart, s32 romEnd, s32 arg3, s32 arg4) { +s32 func_80029008(s32 arg0, u8* romStart, u8* romEnd, u32 arg3, u32 arg4) { s32 result; s32 (*func)(s32, s32); func = func_80004454(arg0, romStart, romEnd); + result = func(arg3, arg4); + main_pool_try_free(func); + return result; } -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029048.s") +void func_80029048(s32 arg0, u8* arg1, u8* arg2, s32 arg3, s32 arg4) { + D_800AE520.unk_00 = 1; + D_800AE520.fragment_id = arg0; + D_800AE520.rom_start = arg1; + D_800AE520.rom_end = arg2; + D_800AE520.arg0 = arg3; + D_800AE520.arg1 = arg4; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029074.s") +unk_D_800AE540_0004* func_80029074(void) { + return D_800AE540.unk_0004; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029080.s") +s16 func_80029080(void) { + return D_80075674; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002908C.s") +void func_8002908C(s32 arg0) { + if ((arg0 >= 0) && (arg0 < 4)) { + D_80075674 = arg0; + D_80075678 = 1; + } +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800290B4.s") +void func_800290B4(void) { + Cont_StartReadInputs(); + Cont_ReadInputs(); + func_8001F730(); +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800290E4.s") +s32 func_800290E4(s16 arg0) { + s32 sp24; -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800291E0.s") + main_pool_push_state('Demo'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029310.s") + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD(func_80004454, fragment2); + FRAGMENT_LOAD(func_80004454, fragment3); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800293CC.s") + D_800AE540.unk_0000 = arg0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800296AC.s") + sp24 = FRAGMENT_LOAD_AND_CALL(fragment17, arg0, 0); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800296E0.s") + main_pool_pop_state('Demo'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029828.s") + return sp24; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029884.s") +void func_800291E0(void) { + main_pool_push_state('demo'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_800298D4.s") + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD(func_80004454, fragment2); + FRAGMENT_LOAD(func_80004454, fragment3); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029924.s") + if (D_800AE540.unk_11F2 != 0) { + FRAGMENT_LOAD_AND_CALL(fragment16, 0, 0); + } else { + FRAGMENT_LOAD_AND_CALL(fragment16, 0, 1); + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029984.s") + main_pool_pop_state('demo'); +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029BC0.s") +void func_80029310(void) { + FRAGMENT_LOAD_AND_CALL(fragment35, 0, 0); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_80029E78.s") + main_pool_push_state('TITL'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A06C.s") + func_80005E40(0x10000, 0); + func_80007678(func_80007444(0, 1, 3, 1, 2, 1)); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A260.s") + if (func_800290E4(0x12) == 2) { + func_80006CF8(1); + func_800077B4(2); + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A400.s") + gCurrentGameState = STATE_TITLE_SCREEN; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A670.s") +void func_800293CC(void) { + gCurrentGameState = FRAGMENT_LOAD_AND_CALL(fragment36, 0, &D_8007567C); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A698.s") + if (gCurrentGameState == STATE_TITLE_SCREEN) { + main_pool_push_state('DEMO'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A6C0.s") + if (D_800AE540.unk_0000 == 0x10) { + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + } else { + ASSET_LOAD(D_3000000, _675FA0, 0); + FRAGMENT_LOAD(func_80004454, fragment2); + FRAGMENT_LOAD(func_80004454, fragment34); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A728.s") + switch (D_800AE540.unk_0003) { + case 3: + FRAGMENT_LOAD(func_80004454, fragment4); + FRAGMENT_LOAD_AND_CALL(fragment8, 1, 0); + break; -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002A8A0.s") + case 9: + FRAGMENT_LOAD(func_80004454, fragment3); + FRAGMENT_LOAD_AND_CALL(fragment14, 1, 0); + break; -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002AAA8.s") + case 13: + FRAGMENT_LOAD(func_80004454, fragment3); + FRAGMENT_LOAD_AND_CALL(fragment18, 1, 0); + break; + } + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002ADE8.s") + main_pool_pop_state('DEMO'); + return; + } -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002AF38.s") + D_800AE540.unk_0002 = 0; + D_800AE540.unk_11F6 = 0; + D_80075674 = -1; +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B07C.s") +void func_800296AC(void) { + func_8000D2B4(1); + func_80001BD4(2); + LeoBootGame(D_800AA688); +} -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B180.s") +void func_800296E0(void) { + s32 temp_v0; + unk_func_80007444* temp_s0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B244.s") + main_pool_push_state('DBUG'); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B24C.s") + func_80005E40(0x10000, 0); + temp_s0 = func_80007444(1, 1, 2, 0, 2, 1); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B274.s") + FRAGMENT_LOAD(func_80004454, fragment34); + func_80007678(temp_s0); + FRAGMENT_LOAD_AND_CALL2(fragment67, 1, 0); -#pragma GLOBAL_ASM("asm/us/nonmatchings/29BA0/func_8002B310.s") + while ((gCurrentGameState == STATE_STUBBED_DEBUG) && (D_800AE520.unk_00 != 0)) { + D_800AE520.unk_00 = 0; + gCurrentGameState = func_80029008(D_800AE520.fragment_id, D_800AE520.rom_start, D_800AE520.rom_end, + D_800AE520.arg0, D_800AE520.arg1); + } -void Game_Thread(void *arg) { + func_800076C0(); + func_80005EAC(); + + main_pool_pop_state('DBUG'); +} + +void func_80029828(void) { + gCurrentGameState = FRAGMENT_LOAD_AND_CALL(fragment37, 0, 0); + D_80075674 = -1; +} + +void func_80029884(void) { + gCurrentGameState = FRAGMENT_LOAD_AND_CALL(fragment38, 0, 0); +} + +void func_800298D4(void) { + gCurrentGameState = FRAGMENT_LOAD_AND_CALL(fragment56, 0, 0); +} + +void func_80029924(void) { + s32 from_title_screen = gLastGameState == STATE_TITLE_SCREEN; + + gCurrentGameState = FRAGMENT_LOAD_AND_CALL(fragment57, 0, from_title_screen); +} + +s16 func_80029984(s16 arg0) { + main_pool_push_state('STAD'); + + func_80005E40(0x18000, 0); + func_80007678(func_80007444(1, 1, 2, 0, 2, 1)); + + while ((arg0 > 0) && (arg0 < 5)) { + switch (arg0) { + case 1: + if (FRAGMENT_LOAD_AND_CALL(fragment59, 0, 0) != 0) { + arg0 = 2; + } else { + arg0 = 0; + } + break; + + case 2: + if (FRAGMENT_LOAD_AND_CALL(fragment60, 0, 0) != 0) { + arg0 = 3; + } else { + arg0 = 1; + } + break; + + case 3: + if (FRAGMENT_LOAD_AND_CALL(fragment54, 0, 0) != 0) { + arg0 = 4; + } else { + arg0 = 1; + } + break; + + case 4: + if (FRAGMENT_LOAD_AND_CALL(fragment61, 0, 0) != 0) { + arg0 = 5; + } else { + arg0 = 3; + } + break; + } + } + + func_800076C0(); + func_80005EAC(); + + main_pool_pop_state('STAD'); + + return arg0; +} + +void func_80029BC0(void) { + s16 sp4E = 1; + + while ((sp4E > 0) && (sp4E < 5)) { + if (D_800AE540.unk_11F5 & 1) { + sp4E = 5; + } else { + sp4E = func_80029984(sp4E); + } + + if (sp4E == 5) { + D_800AE540.unk_11F6 = 0; + FRAGMENT_LOAD_AND_CALL(fragment63, 1, 0); + + while (!(D_800AE540.unk_11F6 & 1)) { + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('STAD'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('STAD'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + } + + if (D_800AE540.unk_11F6 & 0x20) { + sp4E = 4; + } + + if (D_800AE540.unk_11F6 & 0x800) { + sp4E = 4; + } + + if (D_800AE540.unk_11F6 & 2) { + func_800290E4(0x11); + } + + if (D_800AE540.unk_11F6 & 0x1000) { + FRAGMENT_LOAD_AND_CALL(fragment66, 0, 0); + } + + if (D_800AE540.unk_11F6 & 8) { + func_800290E4(0x16); + } + + if (D_800AE540.unk_11F6 & 0x10) { + func_800290E4(0x17); + } + } + } + + if (D_800AE540.unk_11F6 & 0x40) { + gCurrentGameState = STATE_TITLE_SCREEN; + } else { + gCurrentGameState = STATE_AREA_SELECT; + } +} + +s32 func_80029E78(s16 arg0) { + main_pool_push_state('FREE'); + + func_80005E40(0x18000, 0); + func_80007678(func_80007444(1, 1, 2, 0, 2, 1)); + + while ((arg0 > 0) && (arg0 < 4)) { + switch (arg0) { + case 1: + if (FRAGMENT_LOAD_AND_CALL(fragment58, 0, 0) != 0) { + arg0 = 2; + } else { + arg0 = 0; + } + break; + + case 2: + if (FRAGMENT_LOAD_AND_CALL(fragment54, 0, 0) != 0) { + arg0 = 3; + } else { + arg0 = 1; + } + break; + + case 3: + if (FRAGMENT_LOAD_AND_CALL(fragment61, 0, 1) != 0) { + arg0 = 4; + } else { + arg0 = 2; + } + break; + } + } + + func_800076C0(); + func_80005EAC(); + main_pool_pop_state('FREE'); + + return arg0; +} + +void func_8002A06C(void) { + s16 sp4E = 1; + + while ((sp4E > 0) && (sp4E < 4)) { + sp4E = func_80029E78(sp4E); + + switch (sp4E) { + case 4: + D_800AE540.unk_11F6 = 0; + FRAGMENT_LOAD_AND_CALL(fragment63, 0, 0); + + while (!(D_800AE540.unk_11F6 & 1)) { + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('FREE'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('FREE'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + } + + if (D_800AE540.unk_11F6 & 0x20) { + sp4E = 3; + } + + if (D_800AE540.unk_11F6 & 0x80) { + sp4E = 1; + } + break; + } + } + + gCurrentGameState = STATE_AREA_SELECT; +} + +s16 func_8002A260(s16 arg0) { + main_pool_push_state('STAD'); + + func_80005E40(0x18000, 0); + func_80007678(func_80007444(1, 1, 2, 0, 2, 1)); + + while ((arg0 > 0) && (arg0 < 3)) { + switch (arg0) { + case 1: + if (FRAGMENT_LOAD_AND_CALL(fragment54, 0, 0) != 0) { + arg0 = 2; + } else { + arg0 = 0; + } + break; + + case 2: + if (FRAGMENT_LOAD_AND_CALL(fragment61, 0, 0) != 0) { + arg0 = 3; + } else { + arg0 = 1; + } + break; + } + } + + func_800076C0(); + func_80005EAC(); + + main_pool_pop_state('STAD'); + return arg0; +} + +void func_8002A400(void) { + s16 sp4E = 1; + + func_800290E4(0x18); + func_8002B5EC(8, 8, 0); + func_8002B840(0, func_8002B700(0, 0, "1P", func_8002311C(1))); + func_8002B840(1, func_8002B700(-1, 0, "COM", func_8002311C(3))); + + while ((sp4E > 0) && (sp4E < 3)) { + sp4E = func_8002A260(sp4E); + + switch (sp4E) { + case 3: + D_800AE540.unk_11F6 = 0; + FRAGMENT_LOAD_AND_CALL(fragment63, 0, 0); + + while (!(D_800AE540.unk_11F6 & 1)) { + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('STAD'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('STAD'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + } + + if (D_800AE540.unk_11F6 & 0x20) { + sp4E = 2; + } + + if (D_800AE540.unk_11F6 & 4) { + func_800291E0(); + gCurrentGameState = STATE_N64_LOGO_INTRO; + return; + } + break; + } + } + + gCurrentGameState = STATE_AREA_SELECT; +} + +void func_8002A670(void) { + func_8002F2A0(); + gCurrentGameState = STATE_AREA_SELECT; +} + +void func_8002A698(void) { + func_8002FA40(); + gCurrentGameState = STATE_MENU_SELECT; +} + +void func_8002A6C0(void) { + if (FRAGMENT_LOAD_AND_CALL(fragment50, 0, 0) == 1) { + func_800290E4(0x1A); + } + gCurrentGameState = STATE_AREA_SELECT; +} + +void func_8002A728(void) { + s32 sp34; + UnkInputStruct8000D738 sp2C; + unk_func_80027F24 sp24; + + main_pool_push_state('EMU0'); + + if ((FRAGMENT_LOAD_AND_CALL(fragment33, 0, 0) == 0) && (D_80075674 >= 0) && (D_80075674 < 4)) { + func_8000D278(4); + func_8000D2B4(1); + func_80001BD4(2); + func_8000D358(); + + sp2C.unk_04 = main_pool_alloc(0x4B00, 0); + + FRAGMENT_LOAD_AND_CALL(fragment53, D_80075674, &sp2C); + func_8000D738(&sp2C); + + sp34 = func_8000D8A8(); + + func_8000D8DC(&sp2C); + func_80001BD4(2); + func_8000D380(); + + if (sp34 != 0) { + func_8002B274(D_80075674, sp34); + } + + func_80024040(D_80075674); + func_80028AFC(2); + func_80027F24(&sp24); + + sp24.unk_04 = sp2C.unk_00; + + func_80027F40(&sp24); + func_80026684(0x14, 0); + func_800284B4(2); + } + + main_pool_pop_state('EMU0'); + + gCurrentGameState = STATE_AREA_SELECT; +} + +s16 func_8002A8A0(s16 arg0, s16 arg1) { + main_pool_push_state('STAD'); + + func_80005E40(0x18000, 0); + func_80007678(func_80007444(1, 1, 2, 0, 2, 1)); + + while ((arg0 > 0) && (arg0 < 4)) { + switch (arg0) { + case 1: + if (FRAGMENT_LOAD_AND_CALL(fragment54, 0, 0) != 0) { + arg0 = 2; + } else { + arg0 = 0; + } + break; + + case 2: + if (FRAGMENT_LOAD_AND_CALL(fragment65, arg1, 0) != 0) { + arg0 = 3; + } else { + arg0 = 1; + } + break; + + case 3: + if (FRAGMENT_LOAD_AND_CALL(fragment61, 0, 0) != 0) { + arg0 = 4; + } else { + arg0 = 2; + } + break; + } + + arg1 = 0; + } + + func_800076C0(); + func_80005EAC(); + + main_pool_pop_state('STAD'); + + return arg0; +} + +void func_8002AAA8(void) { + s16 sp4E = 1; + s16 sp4C = 0; + + if (!(D_800AE540.unk_11F5 & 1)) { + func_8002B5EC(7, 7, 0); + func_8002B840(0, func_8002B700(0, 0, "1P", func_8002311C(1))); + func_8002B840(1, func_8002B700(-1, 0, "COM", func_8002311C(3))); + } + + while ((sp4E > 0) && (sp4E < 4)) { + if (D_800AE540.unk_11F5 & 1) { + sp4E = 4; + } else { + sp4E = func_8002A8A0(sp4E, sp4C); + } + + if (sp4E == 4) { + sp4C = 0; + D_800AE540.unk_11F6 = 0; + + FRAGMENT_LOAD_AND_CALL(fragment63, 1, 0); + + while (!(D_800AE540.unk_11F6 & 1)) { + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('STAD'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('STAD'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + } + + if (D_800AE540.unk_11F6 & 0x200) { + FRAGMENT_LOAD_AND_CALL(fragment40, 0, 0); + func_800290E4(0x11); + func_800290E4(0x15); + } + + if (D_800AE540.unk_11F6 & 0x20) { + sp4E = 3; + } + + if (D_800AE540.unk_11F6 & 0x800) { + sp4E = 3; + } + + if (D_800AE540.unk_11F6 & 0x400) { + sp4C = 1; + } + + if (D_800AE540.unk_11F6 & 0x100) { + sp4E = 2; + } + } + } + + if (D_800AE540.unk_11F6 & 0x40) { + gCurrentGameState = STATE_TITLE_SCREEN; + } else { + gCurrentGameState = STATE_AREA_SELECT; + } +} + +void func_8002ADE8(s32 arg0) { + main_pool_push_state('QUIK'); + func_8002C394(arg0); + + FRAGMENT_LOAD_AND_CALL(fragment63, 0, 0); + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('FIGT'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('FIGT'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + + main_pool_pop_state('QUIK'); + + gCurrentGameState = STATE_MENU_SELECT; +} + +void func_8002AF38(void) { + main_pool_push_state('EVNT'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 0, 0); + FRAGMENT_LOAD_AND_CALL(fragment64, 0, 0); + + main_pool_push_state('FIGT'); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('FIGT'); + + FRAGMENT_LOAD_AND_CALL(fragment63, 2, 0); + + main_pool_pop_state('EVNT'); + + gCurrentGameState = STATE_EVENT_BATTLE; +} + +void func_8002B07C(void) { + void (*frag_43_entry)(void); + + FRAGMENT_LOAD_AND_CALL(fragment35, 0, 0); + + main_pool_push_state('DOSE'); + + frag_43_entry = FRAGMENT_LOAD(func_80004454, fragment43); + frag_43_entry(); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment75, 0, 0); + + gCurrentGameState = STATE_TITLE_SCREEN; + + main_pool_pop_state('DOSE'); +} + +void func_8002B180(void) { + main_pool_push_state('STAD'); + + func_8002BC64(1, 0, 2, 0); + func_800367A0(0xA0, 0xA, 0); + + FRAGMENT_LOAD(func_80004454, fragment34); + FRAGMENT_LOAD_AND_CALL(fragment62, 0, &D_800AE540); + + main_pool_pop_state('STAD'); + + gCurrentGameState = STATE_TITLE_SCREEN; +} + +void func_8002B244(void) { +} + +void func_8002B24C(void) { + func_8002F2A0(); + gCurrentGameState = STATE_TITLE_SCREEN; +} + +void func_8002B274(s32 arg0, s32 arg1) { + osViBlack(1); + func_8000A924(); + func_8000D338(); + func_8002B310(); + func_80001AD4(1); + func_80001C64(); + func_80001BD4(0xA); + + main_pool_pop_state('GAME'); + + FRAGMENT_LOAD_AND_CALL(fragment32, arg0, arg1); +} + +void func_8002B310(void) { + func_80000DF4(); +} + +void Game_Thread(UNUSED void* arg) { s32 state; __osSetFpcCsr(0x01000C01U); + Cont_SetupControllers(); func_800196DC(); + main_pool_push_state('GAME'); - D_800AF732 = 0; + + D_800AE540.unk_11F2 = 0; + // is this game connected to a Sticker Station? if (func_8000B4C4() != 0) { gCurrentGameState = STATE_FAST_N64_LOGO; } - while(1) { + + while (1) { state = Game_DoCopyProtection(gCurrentGameState); + switch (state) { - case STATE_N64_LOGO_INTRO: func_80029310(); break; - case STATE_TITLE_SCREEN: func_800293CC(); break; - case STATE_N64DD_BOOT_UNUSED: func_800296AC(); break; - case STATE_AREA_SELECT: func_80029828(); break; - case STATE_GALLERY: func_8002A698(); break; - case STATE_EVENT_BATTLE: func_80029884(); break; - case STATE_OPTIONS: func_800298D4(); break; - case STATE_MENU_SELECT: func_80029924(); break; - case STATE_STADIUM_MENU: func_80029BC0(); break; - case STATE_FREE_BATTLE: func_8002A06C(); break; - case STATE_VS_MEWTWO: func_8002A400(); break; - case STATE_KIDS_CLUB: func_8002A670(); break; - case STATE_VICTORY_PALACE: func_8002A6C0(); break; - case STATE_POKEMON_LAB: func_8002EF44(); break; - case STATE_GB_TOWER: func_8002A728(); break; - case STATE_GYM_LEADER_CASTLE: func_8002AAA8(); break; - case STATE_BATTLE_NOW_1P: func_8002ADE8(1); break; - case STATE_BATTLE_NOW_2P: func_8002ADE8(2); break; - case STATE_BATTLE_FROM_EVENT: func_8002AF38(); break; - case STATE_STUBBED_DEBUG: func_800296E0(); break; - case STATE_FAST_BATTLE: func_8002B180(); break; - case STATE_KIDS_CLUB_TITLE: func_8002B24C(); break; - case STATE_FAST_N64_LOGO: func_8002B07C(); break; + case STATE_N64_LOGO_INTRO: + func_80029310(); + break; + case STATE_TITLE_SCREEN: + func_800293CC(); + break; + case STATE_N64DD_BOOT_UNUSED: + func_800296AC(); + break; + case STATE_AREA_SELECT: + func_80029828(); + break; + case STATE_GALLERY: + func_8002A698(); + break; + case STATE_EVENT_BATTLE: + func_80029884(); + break; + case STATE_OPTIONS: + func_800298D4(); + break; + case STATE_MENU_SELECT: + func_80029924(); + break; + case STATE_STADIUM_MENU: + func_80029BC0(); + break; + case STATE_FREE_BATTLE: + func_8002A06C(); + break; + case STATE_VS_MEWTWO: + func_8002A400(); + break; + case STATE_KIDS_CLUB: + func_8002A670(); + break; + case STATE_VICTORY_PALACE: + func_8002A6C0(); + break; + case STATE_POKEMON_LAB: + func_8002EF44(); + break; + case STATE_GB_TOWER: + func_8002A728(); + break; + case STATE_GYM_LEADER_CASTLE: + func_8002AAA8(); + break; + case STATE_BATTLE_NOW_1P: + func_8002ADE8(1); + break; + case STATE_BATTLE_NOW_2P: + func_8002ADE8(2); + break; + case STATE_BATTLE_FROM_EVENT: + func_8002AF38(); + break; + case STATE_STUBBED_DEBUG: + func_800296E0(); + break; + case STATE_FAST_BATTLE: + func_8002B180(); + break; + case STATE_KIDS_CLUB_TITLE: + func_8002B24C(); + break; + case STATE_FAST_N64_LOGO: + func_8002B07C(); + break; // same as state 1: N64 Logo + Intro. - default: func_80029310(); break; + default: + func_80029310(); + break; } + gLastGameState = state; } } diff --git a/src/29BA0.h b/src/29BA0.h new file mode 100644 index 0000000..d255711 --- /dev/null +++ b/src/29BA0.h @@ -0,0 +1,77 @@ +#ifndef _29BA0_H_ +#define _29BA0_H_ + +#include "global.h" + +typedef struct unk_D_800AE540_0004 { + /* 0x000 */ char unk000[0x21C]; +} unk_D_800AE540_0004; // size = 0x21C + +typedef struct unk_D_800AE520 { + /* 0x00 */ s16 unk_00; + /* 0x02 */ s16 fragment_id; + /* 0x04 */ u8* rom_start; + /* 0x08 */ u8* rom_end; + /* 0x0C */ s32 arg0; + /* 0x10 */ s32 arg1; + /* 0x14 */ s32 pad14[3]; +} unk_D_800AE520; // size >= 0x14 + +typedef struct unk_D_800AE540 { + /* 0x0000 */ s8 unk_0000; + /* 0x0001 */ s8 unk_0001; + /* 0x0002 */ s8 unk_0002; + /* 0x0003 */ s8 unk_0003; + /* 0x0004 */ unk_D_800AE540_0004 unk_0004[1]; + /* 0x0220 */ char unk0220[0xFD2]; + /* 0x11F2 */ u8 unk_11F2; + /* 0x11F3 */ char unk11F3[0x2]; + /* 0x11F5 */ u8 unk_11F5; + /* 0x11F6 */ u16 unk_11F6; + /* 0x11F8 */ char pad11F8[0x8]; +} unk_D_800AE540; // size = 0x1200 + +extern s32 gCurrentGameState; +extern unk_D_800AE520 D_800AE520; +extern unk_D_800AE540 D_800AE540; + +s32 Game_DoCopyProtection(s32 state); +s32 func_80029008(s32 arg0, u8* romStart, u8* romEnd, u32 arg3, u32 arg4); +void func_80029048(s32 arg0, u8* arg1, u8* arg2, s32 arg3, s32 arg4); +unk_D_800AE540_0004* func_80029074(void); +s16 func_80029080(void); +void func_8002908C(s32 arg0); +void func_800290B4(void); +s32 func_800290E4(s16 arg0); +void func_800291E0(void); +void func_80029310(void); +void func_800293CC(void); +void func_800296AC(void); +void func_800296E0(void); +void func_80029828(void); +void func_80029884(void); +void func_800298D4(void); +void func_80029924(void); +s16 func_80029984(s16 arg0); +void func_80029BC0(void); +s32 func_80029E78(s16 arg0); +void func_8002A06C(void); +s16 func_8002A260(s16 arg0); +void func_8002A400(void); +void func_8002A670(void); +void func_8002A698(void); +void func_8002A6C0(void); +void func_8002A728(void); +s16 func_8002A8A0(s16 arg0, s16 arg1); +void func_8002AAA8(void); +void func_8002ADE8(s32 arg0); +void func_8002AF38(void); +void func_8002B07C(void); +void func_8002B180(void); +void func_8002B244(void); +void func_8002B24C(void); +void func_8002B274(s32 arg0, s32 arg1); +void func_8002B310(void); +void Game_Thread(UNUSED void *arg); + +#endif // _29BA0_H_ diff --git a/src/2C1C0.c b/src/2C1C0.c index b407358..8e45d0a 100644 --- a/src/2C1C0.c +++ b/src/2C1C0.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "2C1C0.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/2C1C0/func_8002B5C0.s") diff --git a/src/2C1C0.h b/src/2C1C0.h new file mode 100644 index 0000000..9ee7e2f --- /dev/null +++ b/src/2C1C0.h @@ -0,0 +1,12 @@ +#ifndef _2C1C0_H_ +#define _2C1C0_H_ + +#include "global.h" + +void func_8002B5EC(s32, s32, s32); +s32 func_8002B700(s32, s32, const char*, s32); +void func_8002B840(s32, s32); +void func_8002BC64(s32, s32, s32, s32); +void func_8002C394(s16); + +#endif // _2C1C0_H_ diff --git a/src/2E460.h b/src/2E460.h new file mode 100644 index 0000000..eb2eb98 --- /dev/null +++ b/src/2E460.h @@ -0,0 +1,8 @@ +#ifndef _2E460_H_ +#define _2E460_H_ + +#include "global.h" + +void func_8002EF44(void); + +#endif // _2E460_H_ diff --git a/src/2FEA0.c b/src/2FEA0.c index 5f8214b..4e2af78 100644 --- a/src/2FEA0.c +++ b/src/2FEA0.c @@ -1,3 +1,3 @@ -#include "global.h" +#include "2FEA0.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/2FEA0/func_8002F2A0.s") diff --git a/src/2FEA0.h b/src/2FEA0.h new file mode 100644 index 0000000..5146591 --- /dev/null +++ b/src/2FEA0.h @@ -0,0 +1,8 @@ +#ifndef _2FEA0_H_ +#define _2FEA0_H_ + +#include "global.h" + +void func_8002F2A0(void); + +#endif // _2FEA0_H_ diff --git a/src/30640.h b/src/30640.h index 64ad536..820788e 100644 --- a/src/30640.h +++ b/src/30640.h @@ -3,6 +3,7 @@ #include "global.h" +void func_8002FA40(void); f32 func_80031A6C(f32); void func_80031EF4(f32[4][4], Vec3f*); diff --git a/src/3FB0.c b/src/3FB0.c index b329e03..4fbe1ad 100644 --- a/src/3FB0.c +++ b/src/3FB0.c @@ -1,5 +1,6 @@ -#include "global.h" +#include "3FB0.h" #include "memory.h" +#include "memmap.h" #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_800033B0.s") @@ -27,14 +28,9 @@ #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_80003BE0.s") -// PERSJPEG header -struct UnkInputStruct80003C80 { - char filler0[0x8]; - u32 unk8; - u32 unkC; -}; +s32 func_80003680(u32 addr, u32 arg1, u32 arg2, UnkInputStruct80003C80* arg3); -s32 func_80003C80(s32 arg0, struct UnkInputStruct80003C80* arg1, s32 side) { +s32 func_80003C80(s32 arg0, UnkInputStruct80003C80* arg1, s32 side) { s32 addr = main_pool_alloc(arg1->unkC + 0x100, side); if (addr != 0) { @@ -50,13 +46,9 @@ s32 func_80003C80(s32 arg0, struct UnkInputStruct80003C80* arg1, s32 side) { return addr; } -// PERS-SZP header -struct UnkInputStruct80003D18 { - char filler0[0x10]; - u32 unk10; -}; +void func_80003890(s32, void*); -s32 func_80003D18(s32 arg0, struct UnkInputStruct80003D18* arg1, s32 side) { +s32 func_80003D18(s32 arg0, UnkInputStruct80003D18* arg1, s32 side) { s32 vaddr = main_pool_alloc(arg1->unk10, side); if (vaddr != NULL) { @@ -68,7 +60,9 @@ s32 func_80003D18(s32 arg0, struct UnkInputStruct80003D18* arg1, s32 side) { #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_80003D64.s") -void* func_80003DC4(uintptr_t romStart, uintptr_t romEnd, s32 arg2, s32 arg3) { +void func_80003B30(u8*, u8*, u8*, s32); + +void* func_80003DC4(u8* romStart, u8* romEnd, s32 arg2, s32 arg3) { u32* addr; u32* newaddr; u32* ret; @@ -116,8 +110,10 @@ void* func_80003DC4(uintptr_t romStart, uintptr_t romEnd, s32 arg2, s32 arg3) { #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_80004200.s") -s32 func_80004258(s32 id, s32 arg1, s32 arg2, s32 arg3) { - s32 vaddr = func_80003DC4(arg1, arg2, arg3, 0); +void func_80004200(s32, s32); + +s32 func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3) { + s32 vaddr = func_80003DC4(rom_start, rom_end, arg3, 0); if ((vaddr != 0) && (id > 0)) { Memmap_SetSegmentMap(id, vaddr, main_pool_get_block_dist(vaddr)); @@ -128,22 +124,45 @@ s32 func_80004258(s32 id, s32 arg1, s32 arg2, s32 arg3) { #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_800042E0.s") -#pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_80004364.s") +void func_80004364(u32 base_addr, u32 addr) { + u32 sp1C; + u32 temp_a0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_800043BC.s") + if ((addr & 0xFF000000) == 0x81000000) { + sp1C = addr & 0xFFFFFF; + if (Memmap_GetFragmentBaseVaddr(sp1C) == base_addr) { + Memmap_ClearFragmentMemmap(sp1C); + } + } +} -void* func_80004454(s32 arg0, uintptr_t romStart, uintptr_t romEnd) { +void func_800043BC(s32 arg0, Fragment* addr) { + s32 pad; + u32 sp20 = main_pool_get_block_dist(addr); + + main_pool_set_func(addr, arg0 + 0x81000000, &func_80004364); + + if (sp20 < addr->sizeInRam) { + main_pool_realloc(addr, addr->sizeInRam); + Memmap_RelocateFragment(arg0, addr); + } else { + Memmap_RelocateFragment(arg0, addr); + main_pool_realloc(addr, addr->sizeInRam); + } +} + +void* func_80004454(s32 arg0, u8* romStart, u8* romEnd) { void* addr = func_80003DC4(romStart, romEnd, 0, 0); if (addr != NULL) { - func_800043BC(arg0, addr); + func_800043BC(arg0, (Fragment*)addr); } return addr; } #pragma GLOBAL_ASM("asm/us/nonmatchings/3FB0/func_800044A8.s") -void* func_800044F4(uintptr_t romStart, uintptr_t romEnd, s32 arg2, s32 arg3) { +void* func_800044F4(u8* romStart, u8* romEnd, s32 arg2, s32 arg3) { u32* ret; unsigned long sp28_2; unsigned long sp28; diff --git a/src/3FB0.h b/src/3FB0.h index f7bafd9..1033253 100644 --- a/src/3FB0.h +++ b/src/3FB0.h @@ -8,10 +8,24 @@ typedef struct ret_func_8000484C { /* 0x90 */ s32 unk_90; } ret_func_8000484C; // size >= 0x94 -void* func_80003DC4(void* romStart, void* romEnd, s32 arg2, s32 arg3); -s32 func_80004258(s32 id, void* arg1, void* arg2, s32 arg3); -void *func_80004454(s32 arg0, void* romStart, void* romEnd); -void* func_800044F4(uintptr_t romStart, uintptr_t romEnd, s32 arg2, s32 arg3); -ret_func_8000484C* func_8000484C(void*, s32); +// PERS-SZP header +typedef struct UnkInputStruct80003D18 { + char filler0[0x10]; + u32 unk10; +} UnkInputStruct80003D18; + +// PERSJPEG header +typedef struct UnkInputStruct80003C80 { + char filler0[0x8]; + u32 unk8; + u32 unkC; +} UnkInputStruct80003C80; + +s32 func_80003C80(s32 arg0, UnkInputStruct80003C80* arg1, s32 side); +s32 func_80003D18(s32 arg0, UnkInputStruct80003D18* arg1, s32 side); +void* func_80003DC4(u8* romStart, u8* romEnd, s32 arg2, s32 arg3); +s32 func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3); +void* func_80004454(s32 arg0, u8* romStart, u8* romEnd); +void* func_800044F4(u8* romStart, u8* romEnd, s32 arg2, s32 arg3); #endif // _3FB0_H_ diff --git a/src/DDC0.h b/src/DDC0.h new file mode 100644 index 0000000..3473498 --- /dev/null +++ b/src/DDC0.h @@ -0,0 +1,22 @@ +#ifndef _DDC0_H_ +#define _DDC0_H_ + +#include "global.h" + +void func_8000D1C0(void); +void func_8000D1C8(void); +void func_8000D1D0(void); +void func_8000D1D8(void); +void func_8000D1E0(void); +void func_8000D1F0(s32 arg0); +void func_8000D23C(s32 arg0); +void func_8000D278(s32 arg0); +s32 func_8000D2B4(s32 arg0); +void func_8000D338(void); +void func_8000D358(void); +void func_8000D380(void); +void func_8000D3A8(void*); +void func_8000D564(void); + + +#endif // _DDC0_H_ diff --git a/src/E1C0.c b/src/E1C0.c index d23eaec..e94bfab 100644 --- a/src/E1C0.c +++ b/src/E1C0.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "E1C0.h" #include #include "dp_intro.h" #include "sections.h" @@ -56,15 +56,16 @@ void func_8000D678(void* unused) { } } -void func_8000D738(struct UnkInputStruct8000D738* arg0) { +void func_8000D738(UnkInputStruct8000D738* arg0) { s32 temp_v0; main_pool_push_state('GBEM'); D_800AA660 = main_pool_alloc(0x2210, 0); D_800AA664 = main_pool_alloc(0x21E0, 0); - func_80004454(((u32)((u32)&fragment1_TEXT_START & 0x0FF00000) >> 0x14) - 0x10, &fragment1_ROM_START, - &fragment1_relocs_ROM_END); - temp_v0 = func_800044F4(&_3BA190_ROM_START, &_3CB130_ROM_START, 1, 1); + + func_80004454(FRAGMENT_ID(fragment1), fragment1_ROM_START, fragment1_relocs_ROM_END); + temp_v0 = ASSET_LOAD2(func_800044F4, _3BA190, 1, 1); + D_800AA660->unk21FC = func_8000484C(temp_v0, 0); D_800AA660->unk2200 = func_8000484C(temp_v0, 1); D_800AA660->unk2204 = *arg0; @@ -82,7 +83,7 @@ OSMesg* func_8000D8A8(void) { return mesg; } -void func_8000D8DC(struct UnkInputStruct8000D738* arg0) { +void func_8000D8DC(UnkInputStruct8000D738* arg0) { *arg0 = D_800AA660->unk2204; func_8000B318(D_800AA668); osViBlack(1U); diff --git a/src/E1C0.h b/src/E1C0.h new file mode 100644 index 0000000..300615a --- /dev/null +++ b/src/E1C0.h @@ -0,0 +1,10 @@ +#ifndef _E1C0_H_ +#define _E1C0_H_ + +#include "global.h" + +void func_8000D738(UnkInputStruct8000D738* arg0); +OSMesg* func_8000D8A8(void); +void func_8000D8DC(UnkInputStruct8000D738* arg0); + +#endif // _E1C0_H_ diff --git a/src/fragments/1/fragment1_7F9A0.c b/src/fragments/1/fragment1_7F9A0.c index 1d7a7e6..833c134 100644 --- a/src/fragments/1/fragment1_7F9A0.c +++ b/src/fragments/1/fragment1_7F9A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81200020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_7F9A0/func_81200078.s") diff --git a/src/fragments/1/fragment1_86920.c b/src/fragments/1/fragment1_86920.c index abdd59c..63b3437 100644 --- a/src/fragments/1/fragment1_86920.c +++ b/src/fragments/1/fragment1_86920.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_81206FA0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86920/func_81207020.s") diff --git a/src/fragments/1/fragment1_86C30.c b/src/fragments/1/fragment1_86C30.c index dae8d1c..f38cf37 100644 --- a/src/fragments/1/fragment1_86C30.c +++ b/src/fragments/1/fragment1_86C30.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86C30/func_812072B0.s") diff --git a/src/fragments/1/fragment1_86CB0.c b/src/fragments/1/fragment1_86CB0.c index bba91b7..cda63b3 100644 --- a/src/fragments/1/fragment1_86CB0.c +++ b/src/fragments/1/fragment1_86CB0.c @@ -1,6 +1,5 @@ #include "global.h" - void func_81207330(void) { } diff --git a/src/fragments/10/fragment10.c b/src/fragments/10/fragment10.c index d057885..180b816 100644 --- a/src/fragments/10/fragment10.c +++ b/src/fragments/10/fragment10.c @@ -946,12 +946,13 @@ void func_86402130(void) { void func_864025A0(UNUSED s32 arg0, UNUSED s32 arg1) { unk_func_80007444* sp24; - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x18000, 0); sp24 = func_80007444(0, 1, 3, 1, 2, 1); D_87B000E0 = func_8001E94C(0x16, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, _4BD6B0_ROM_START, _4BE810_ROM_START, 0); - func_80004454((((u32)&D_81000000 & 0x0FF00000) >> 0x14) - 0x10, fragment31_ROM_START, fragment32_ROM_START); + ASSET_LOAD(D_1000000, _4BD6B0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); func_86402130(); func_80007678(sp24); func_86401B3C(); @@ -960,6 +961,8 @@ void func_864025A0(UNUSED s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/fragments/11/fragment11.c b/src/fragments/11/fragment11.c index 2f275fc..d43278a 100644 --- a/src/fragments/11/fragment11.c +++ b/src/fragments/11/fragment11.c @@ -822,12 +822,15 @@ void func_86501AAC(void) { void func_86501E9C(UNUSED s32 arg0, UNUSED s32 arg1) { unk_func_80007444* sp24; - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x18000, 0); sp24 = func_80007444(0, 1, 3, 1, 2, 1); D_87B000E0 = func_8001E94C(0x16, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, _4BD6B0_ROM_START, _4BE810_ROM_START, 0); - func_80004454((((u32)&D_81000000 & 0x0FF00000) >> 0x14) - 0x10, fragment31_ROM_START, fragment32_ROM_START); + + ASSET_LOAD(D_1000000, _4BD6B0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); + func_86501AAC(); func_80007678(sp24); func_86501668(); @@ -836,7 +839,9 @@ void func_86501E9C(UNUSED s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/fragments/14/fragment14_144300.c b/src/fragments/14/fragment14_144300.c index 2831c3f..7263a3e 100644 --- a/src/fragments/14/fragment14_144300.c +++ b/src/fragments/14/fragment14_144300.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_144300/func_86800020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_144300/func_86800070.s") diff --git a/src/fragments/14/fragment14_1462A0.c b/src/fragments/14/fragment14_1462A0.c index 9ae43fe..8b3a128 100644 --- a/src/fragments/14/fragment14_1462A0.c +++ b/src/fragments/14/fragment14_1462A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_1462A0/func_86801FC0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_1462A0/func_86802084.s") diff --git a/src/fragments/14/fragment14_14A030.c b/src/fragments/14/fragment14_14A030.c index cda286c..6577b2f 100644 --- a/src/fragments/14/fragment14_14A030.c +++ b/src/fragments/14/fragment14_14A030.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_14A030/func_86805D50.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/14/fragment14_14A030/func_86805E94.s") diff --git a/src/fragments/15/fragment15_14CA70.c b/src/fragments/15/fragment15_14CA70.c index d07b1c9..68dc776 100644 --- a/src/fragments/15/fragment15_14CA70.c +++ b/src/fragments/15/fragment15_14CA70.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_14CA70/func_86900020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_14CA70/func_86900088.s") diff --git a/src/fragments/15/fragment15_14EC80.c b/src/fragments/15/fragment15_14EC80.c index 18fffde..e50bee2 100644 --- a/src/fragments/15/fragment15_14EC80.c +++ b/src/fragments/15/fragment15_14EC80.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_14EC80/func_86902230.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_14EC80/func_86902294.s") diff --git a/src/fragments/15/fragment15_150AC0.c b/src/fragments/15/fragment15_150AC0.c index b289b62..9d0818f 100644 --- a/src/fragments/15/fragment15_150AC0.c +++ b/src/fragments/15/fragment15_150AC0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_150AC0/func_86904070.s") void func_869043F4(void) { diff --git a/src/fragments/16/fragment16_158A00.c b/src/fragments/16/fragment16_158A00.c index d557dd9..4046676 100644 --- a/src/fragments/16/fragment16_158A00.c +++ b/src/fragments/16/fragment16_158A00.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_158A00/func_86A00020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_158A00/func_86A0003C.s") diff --git a/src/fragments/16/fragment16_15A2A0.c b/src/fragments/16/fragment16_15A2A0.c index 9b1d3cc..2d80ab4 100644 --- a/src/fragments/16/fragment16_15A2A0.c +++ b/src/fragments/16/fragment16_15A2A0.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15A2A0/func_86A018C0.s") diff --git a/src/fragments/16/fragment16_15A2B0.c b/src/fragments/16/fragment16_15A2B0.c index 27a5563..5252c85 100644 --- a/src/fragments/16/fragment16_15A2B0.c +++ b/src/fragments/16/fragment16_15A2B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15A2B0/func_86A018D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15A2B0/func_86A01BEC.s") diff --git a/src/fragments/16/fragment16_15AD80.c b/src/fragments/16/fragment16_15AD80.c index f2d82fe..fbe4185 100644 --- a/src/fragments/16/fragment16_15AD80.c +++ b/src/fragments/16/fragment16_15AD80.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15AD80/func_86A023A0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15AD80/func_86A0240C.s") diff --git a/src/fragments/17/fragment17_15F9B0.c b/src/fragments/17/fragment17_15F9B0.c index d5506d1..3e0519e 100644 --- a/src/fragments/17/fragment17_15F9B0.c +++ b/src/fragments/17/fragment17_15F9B0.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_15F9B0/func_86B00020.s") diff --git a/src/fragments/17/fragment17_15FA60.c b/src/fragments/17/fragment17_15FA60.c index aa91139..49f7e96 100644 --- a/src/fragments/17/fragment17_15FA60.c +++ b/src/fragments/17/fragment17_15FA60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_15FA60/func_86B000D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_15FA60/func_86B00158.s") diff --git a/src/fragments/17/fragment17_160CB0.c b/src/fragments/17/fragment17_160CB0.c index 019a5bd..e1e7d8e 100644 --- a/src/fragments/17/fragment17_160CB0.c +++ b/src/fragments/17/fragment17_160CB0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_160CB0/func_86B01320.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_160CB0/func_86B01404.s") diff --git a/src/fragments/17/fragment17_161000.c b/src/fragments/17/fragment17_161000.c index 5588d26..60c18c2 100644 --- a/src/fragments/17/fragment17_161000.c +++ b/src/fragments/17/fragment17_161000.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161000/func_86B01670.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161000/func_86B01898.s") diff --git a/src/fragments/17/fragment17_161590.c b/src/fragments/17/fragment17_161590.c index 37f7ada..7fc5f35 100644 --- a/src/fragments/17/fragment17_161590.c +++ b/src/fragments/17/fragment17_161590.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161590/func_86B01C00.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161590/func_86B01D8C.s") diff --git a/src/fragments/17/fragment17_161E60.c b/src/fragments/17/fragment17_161E60.c index 726ac0c..7510b2c 100644 --- a/src/fragments/17/fragment17_161E60.c +++ b/src/fragments/17/fragment17_161E60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161E60/func_86B024D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_161E60/func_86B02538.s") diff --git a/src/fragments/17/fragment17_164B00.c b/src/fragments/17/fragment17_164B00.c index 163018f..e87972e 100644 --- a/src/fragments/17/fragment17_164B00.c +++ b/src/fragments/17/fragment17_164B00.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_164B00/func_86B05170.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_164B00/func_86B05944.s") diff --git a/src/fragments/17/fragment17_165640.c b/src/fragments/17/fragment17_165640.c index 9d6a2aa..2afe866 100644 --- a/src/fragments/17/fragment17_165640.c +++ b/src/fragments/17/fragment17_165640.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_165640/func_86B05CB0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_165640/func_86B05D18.s") diff --git a/src/fragments/17/fragment17_168110.c b/src/fragments/17/fragment17_168110.c index d7141f3..acedfef 100644 --- a/src/fragments/17/fragment17_168110.c +++ b/src/fragments/17/fragment17_168110.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_168110/func_86B08780.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_168110/func_86B087A0.s") diff --git a/src/fragments/17/fragment17_1687E0.c b/src/fragments/17/fragment17_1687E0.c index 2544108..baf5302 100644 --- a/src/fragments/17/fragment17_1687E0.c +++ b/src/fragments/17/fragment17_1687E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_1687E0/func_86B08E50.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_1687E0/func_86B08EA8.s") diff --git a/src/fragments/17/fragment17_169510.c b/src/fragments/17/fragment17_169510.c index 217d958..74d2eab 100644 --- a/src/fragments/17/fragment17_169510.c +++ b/src/fragments/17/fragment17_169510.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_169510/func_86B09B80.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_169510/func_86B09EF0.s") diff --git a/src/fragments/17/fragment17_169A40.c b/src/fragments/17/fragment17_169A40.c index 27cdd77..601bf4e 100644 --- a/src/fragments/17/fragment17_169A40.c +++ b/src/fragments/17/fragment17_169A40.c @@ -1,6 +1,5 @@ #include "global.h" - void func_86B0A0B0(void) { } diff --git a/src/fragments/17/fragment17_16A0E0.c b/src/fragments/17/fragment17_16A0E0.c index 9482b17..a53ebf1 100644 --- a/src/fragments/17/fragment17_16A0E0.c +++ b/src/fragments/17/fragment17_16A0E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_16A0E0/func_86B0A750.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_16A0E0/func_86B0A7F8.s") diff --git a/src/fragments/23/fragment23_1A8590.c b/src/fragments/23/fragment23_1A8590.c index d5c00cb..33c2003 100644 --- a/src/fragments/23/fragment23_1A8590.c +++ b/src/fragments/23/fragment23_1A8590.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A8590/func_88200020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A8590/func_882000E4.s") diff --git a/src/fragments/23/fragment23_1A8800.c b/src/fragments/23/fragment23_1A8800.c index 81d01e6..c2d9c88 100644 --- a/src/fragments/23/fragment23_1A8800.c +++ b/src/fragments/23/fragment23_1A8800.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A8800/func_88200290.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A8800/func_882004BC.s") diff --git a/src/fragments/23/fragment23_1A9780.c b/src/fragments/23/fragment23_1A9780.c index 6b5fa10..a9b6d60 100644 --- a/src/fragments/23/fragment23_1A9780.c +++ b/src/fragments/23/fragment23_1A9780.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A9780/func_88201210.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1A9780/func_88201294.s") diff --git a/src/fragments/23/fragment23_1AE680.c b/src/fragments/23/fragment23_1AE680.c index 1435343..a2dc7a5 100644 --- a/src/fragments/23/fragment23_1AE680.c +++ b/src/fragments/23/fragment23_1AE680.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1AE680/func_88206110.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1AE680/func_882062E4.s") diff --git a/src/fragments/23/fragment23_1B4EA0.c b/src/fragments/23/fragment23_1B4EA0.c index 2ab8847..ecf6487 100644 --- a/src/fragments/23/fragment23_1B4EA0.c +++ b/src/fragments/23/fragment23_1B4EA0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1B4EA0/func_8820C930.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1B4EA0/func_8820C97C.s") diff --git a/src/fragments/23/fragment23_1BCF10.c b/src/fragments/23/fragment23_1BCF10.c index 53f4d9d..21fa278 100644 --- a/src/fragments/23/fragment23_1BCF10.c +++ b/src/fragments/23/fragment23_1BCF10.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1BCF10/func_882149A0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/23/fragment23_1BCF10/func_88214A58.s") diff --git a/src/fragments/24/fragment24_1CEA00.c b/src/fragments/24/fragment24_1CEA00.c index cd7f928..2a51ea6 100644 --- a/src/fragments/24/fragment24_1CEA00.c +++ b/src/fragments/24/fragment24_1CEA00.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/24/fragment24_1CEA00/func_88300020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/24/fragment24_1CEA00/func_88300090.s") diff --git a/src/fragments/24/fragment24_1E46B0.c b/src/fragments/24/fragment24_1E46B0.c index 51e9dcb..2281cf6 100644 --- a/src/fragments/24/fragment24_1E46B0.c +++ b/src/fragments/24/fragment24_1E46B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/24/fragment24_1E46B0/func_88315CD0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/24/fragment24_1E46B0/func_88315CFC.s") diff --git a/src/fragments/28/fragment28_214920.c b/src/fragments/28/fragment28_214920.c index ec3ff3b..87ee8c6 100644 --- a/src/fragments/28/fragment28_214920.c +++ b/src/fragments/28/fragment28_214920.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/28/fragment28_214920/func_88800020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/28/fragment28_214920/func_88800274.s") diff --git a/src/fragments/28/fragment28_2190D0.c b/src/fragments/28/fragment28_2190D0.c index 8e95a27..6add3c6 100644 --- a/src/fragments/28/fragment28_2190D0.c +++ b/src/fragments/28/fragment28_2190D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/28/fragment28_2190D0/func_888047D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/28/fragment28_2190D0/func_88804B1C.s") diff --git a/src/fragments/3/fragment3_1189B0.c b/src/fragments/3/fragment3_1189B0.c index 129aeb0..2de6e0e 100644 --- a/src/fragments/3/fragment3_1189B0.c +++ b/src/fragments/3/fragment3_1189B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_1189B0/func_87900020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_1189B0/func_8790002C.s") diff --git a/src/fragments/3/fragment3_1193E0.c b/src/fragments/3/fragment3_1193E0.c index 699b01e..511725b 100644 --- a/src/fragments/3/fragment3_1193E0.c +++ b/src/fragments/3/fragment3_1193E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_1193E0/func_87900A50.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_1193E0/func_87900B64.s") diff --git a/src/fragments/3/fragment3_119FB0.c b/src/fragments/3/fragment3_119FB0.c index a186cee..b8b05f9 100644 --- a/src/fragments/3/fragment3_119FB0.c +++ b/src/fragments/3/fragment3_119FB0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_119FB0/func_87901620.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_119FB0/func_8790168C.s") diff --git a/src/fragments/3/fragment3_11BBF0.c b/src/fragments/3/fragment3_11BBF0.c index d127d36..aff53af 100644 --- a/src/fragments/3/fragment3_11BBF0.c +++ b/src/fragments/3/fragment3_11BBF0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_11BBF0/func_87903260.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_11BBF0/func_87903294.s") diff --git a/src/fragments/3/fragment3_11BF90.c b/src/fragments/3/fragment3_11BF90.c index 9c795e7..71caf90 100644 --- a/src/fragments/3/fragment3_11BF90.c +++ b/src/fragments/3/fragment3_11BF90.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_11BF90/func_87903600.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/3/fragment3_11BF90/func_879036B4.s") diff --git a/src/fragments/31/fragment31_2554C0.c b/src/fragments/31/fragment31_2554C0.c index 6290c2f..30a54cd 100644 --- a/src/fragments/31/fragment31_2554C0.c +++ b/src/fragments/31/fragment31_2554C0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2554C0/func_81000200.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2554C0/func_810002DC.s") diff --git a/src/fragments/31/fragment31_2557A0.c b/src/fragments/31/fragment31_2557A0.c index 05d5f95..becba84 100644 --- a/src/fragments/31/fragment31_2557A0.c +++ b/src/fragments/31/fragment31_2557A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2557A0/func_810004E0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2557A0/func_81000518.s") diff --git a/src/fragments/31/fragment31_2558B0.c b/src/fragments/31/fragment31_2558B0.c index c15997d..7d6d358 100644 --- a/src/fragments/31/fragment31_2558B0.c +++ b/src/fragments/31/fragment31_2558B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2558B0/func_810005F0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2558B0/func_810007A8.s") diff --git a/src/fragments/31/fragment31_257750.c b/src/fragments/31/fragment31_257750.c index b6d1dd6..bf154f2 100644 --- a/src/fragments/31/fragment31_257750.c +++ b/src/fragments/31/fragment31_257750.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257750/func_81002490.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257750/func_810024E4.s") diff --git a/src/fragments/31/fragment31_2577F0.c b/src/fragments/31/fragment31_2577F0.c index ba1e072..c6d12b5 100644 --- a/src/fragments/31/fragment31_2577F0.c +++ b/src/fragments/31/fragment31_2577F0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2577F0/func_81002530.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2577F0/func_810027E0.s") diff --git a/src/fragments/31/fragment31_257AF0.c b/src/fragments/31/fragment31_257AF0.c index 82ea119..2568545 100644 --- a/src/fragments/31/fragment31_257AF0.c +++ b/src/fragments/31/fragment31_257AF0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257AF0/func_81002830.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257AF0/func_81002968.s") diff --git a/src/fragments/31/fragment31_257DE0.c b/src/fragments/31/fragment31_257DE0.c index 595ff84..3008852 100644 --- a/src/fragments/31/fragment31_257DE0.c +++ b/src/fragments/31/fragment31_257DE0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257DE0/func_81002B20.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257DE0/func_81002BC0.s") diff --git a/src/fragments/31/fragment31_257EC0.c b/src/fragments/31/fragment31_257EC0.c index 4d11b29..710ed4e 100644 --- a/src/fragments/31/fragment31_257EC0.c +++ b/src/fragments/31/fragment31_257EC0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257EC0/func_81002C00.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257EC0/func_81002CA0.s") diff --git a/src/fragments/31/fragment31_257FA0.c b/src/fragments/31/fragment31_257FA0.c index d65bf13..b740377 100644 --- a/src/fragments/31/fragment31_257FA0.c +++ b/src/fragments/31/fragment31_257FA0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257FA0/func_81002CE0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_257FA0/func_81002D80.s") diff --git a/src/fragments/31/fragment31_258080.c b/src/fragments/31/fragment31_258080.c index 9a1130a..c9ac61e 100644 --- a/src/fragments/31/fragment31_258080.c +++ b/src/fragments/31/fragment31_258080.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_258080/func_81002DC0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_258080/func_81002F38.s") diff --git a/src/fragments/31/fragment31_259030.c b/src/fragments/31/fragment31_259030.c index 1d43223..f1aa92d 100644 --- a/src/fragments/31/fragment31_259030.c +++ b/src/fragments/31/fragment31_259030.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_259030/func_81003D70.s") diff --git a/src/fragments/31/fragment31_2590C0.c b/src/fragments/31/fragment31_2590C0.c index 6e09b9f..a104d99 100644 --- a/src/fragments/31/fragment31_2590C0.c +++ b/src/fragments/31/fragment31_2590C0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2590C0/func_81003E00.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_2590C0/func_81003E90.s") diff --git a/src/fragments/34/fragment34_261F90.c b/src/fragments/34/fragment34_261F90.c index 2c79b79..8a5d85e 100644 --- a/src/fragments/34/fragment34_261F90.c +++ b/src/fragments/34/fragment34_261F90.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_261F90/func_81400030.s") diff --git a/src/fragments/34/fragment34_264380.c b/src/fragments/34/fragment34_264380.c index c663318..acd1553 100644 --- a/src/fragments/34/fragment34_264380.c +++ b/src/fragments/34/fragment34_264380.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_264380/func_81402410.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_264380/func_81402434.s") diff --git a/src/fragments/34/fragment34_269820.c b/src/fragments/34/fragment34_269820.c index 6d349cd..114cfca 100644 --- a/src/fragments/34/fragment34_269820.c +++ b/src/fragments/34/fragment34_269820.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_269820/func_814078B0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_269820/func_81407A30.s") diff --git a/src/fragments/34/fragment34_26E540.c b/src/fragments/34/fragment34_26E540.c index 4532d58..7a03cee 100644 --- a/src/fragments/34/fragment34_26E540.c +++ b/src/fragments/34/fragment34_26E540.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E540/func_8140C5D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E540/func_8140C734.s") diff --git a/src/fragments/34/fragment34_26E6D0.c b/src/fragments/34/fragment34_26E6D0.c index c3e4ca4..5be7e3a 100644 --- a/src/fragments/34/fragment34_26E6D0.c +++ b/src/fragments/34/fragment34_26E6D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E6D0/func_8140C760.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26E6D0/func_8140C78C.s") diff --git a/src/fragments/34/fragment34_26F9B0.c b/src/fragments/34/fragment34_26F9B0.c index a67cfb6..4f44fa6 100644 --- a/src/fragments/34/fragment34_26F9B0.c +++ b/src/fragments/34/fragment34_26F9B0.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26F9B0/func_8140DA40.s") diff --git a/src/fragments/39/fragment39_27BCC0.c b/src/fragments/39/fragment39_27BCC0.c index 455a9ad..87310d4 100644 --- a/src/fragments/39/fragment39_27BCC0.c +++ b/src/fragments/39/fragment39_27BCC0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_27BCC0/func_82500020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_27BCC0/func_825001B4.s") diff --git a/src/fragments/39/fragment39_2804C0.c b/src/fragments/39/fragment39_2804C0.c index 0d6967e..46caf2f 100644 --- a/src/fragments/39/fragment39_2804C0.c +++ b/src/fragments/39/fragment39_2804C0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504820.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_2804C0/func_82504838.s") diff --git a/src/fragments/39/fragment39_281C40.c b/src/fragments/39/fragment39_281C40.c index 1af1893..b732ea5 100644 --- a/src/fragments/39/fragment39_281C40.c +++ b/src/fragments/39/fragment39_281C40.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_82505FA0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/39/fragment39_281C40/func_82505FC8.s") diff --git a/src/fragments/41/fragment41_287ED0.c b/src/fragments/41/fragment41_287ED0.c index c6a93f9..447a287 100644 --- a/src/fragments/41/fragment41_287ED0.c +++ b/src/fragments/41/fragment41_287ED0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_287ED0/func_82F00020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_287ED0/func_82F00058.s") diff --git a/src/fragments/41/fragment41_289240.c b/src/fragments/41/fragment41_289240.c index c9aeef1..2113f8e 100644 --- a/src/fragments/41/fragment41_289240.c +++ b/src/fragments/41/fragment41_289240.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_289240/func_82F01390.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_289240/func_82F014E4.s") diff --git a/src/fragments/41/fragment41_28D1A0.c b/src/fragments/41/fragment41_28D1A0.c index 1b07748..fcf7ca0 100644 --- a/src/fragments/41/fragment41_28D1A0.c +++ b/src/fragments/41/fragment41_28D1A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_28D1A0/func_82F052F0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_28D1A0/func_82F053F8.s") diff --git a/src/fragments/41/fragment41_28ED00.c b/src/fragments/41/fragment41_28ED00.c index 59910d9..3ae3fd1 100644 --- a/src/fragments/41/fragment41_28ED00.c +++ b/src/fragments/41/fragment41_28ED00.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_28ED00/func_82F06E50.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_28ED00/func_82F06F9C.s") diff --git a/src/fragments/41/fragment41_291D60.c b/src/fragments/41/fragment41_291D60.c index b49da1a..2dc559e 100644 --- a/src/fragments/41/fragment41_291D60.c +++ b/src/fragments/41/fragment41_291D60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_291D60/func_82F09EB0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_291D60/func_82F09F44.s") diff --git a/src/fragments/41/fragment41_2942C0.c b/src/fragments/41/fragment41_2942C0.c index c850d4f..493e7aa 100644 --- a/src/fragments/41/fragment41_2942C0.c +++ b/src/fragments/41/fragment41_2942C0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_2942C0/func_82F0C410.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/41/fragment41_2942C0/func_82F0C630.s") diff --git a/src/fragments/43/fragment43_2A1B50.c b/src/fragments/43/fragment43_2A1B50.c index 85baf08..fb0bfa6 100644 --- a/src/fragments/43/fragment43_2A1B50.c +++ b/src/fragments/43/fragment43_2A1B50.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A1B50/func_83400020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A1B50/func_834002C4.s") diff --git a/src/fragments/43/fragment43_2A3E70.c b/src/fragments/43/fragment43_2A3E70.c index 9085903..c7126e5 100644 --- a/src/fragments/43/fragment43_2A3E70.c +++ b/src/fragments/43/fragment43_2A3E70.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A3E70/func_83402340.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A3E70/func_83402374.s") diff --git a/src/fragments/43/fragment43_2A3F60.c b/src/fragments/43/fragment43_2A3F60.c index 868446b..cbe5671 100644 --- a/src/fragments/43/fragment43_2A3F60.c +++ b/src/fragments/43/fragment43_2A3F60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A3F60/func_83402430.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/43/fragment43_2A3F60/func_834024C4.s") diff --git a/src/fragments/47/fragment47_2AD910.c b/src/fragments/47/fragment47_2AD910.c index b1ebd3f..2ea6285 100644 --- a/src/fragments/47/fragment47_2AD910.c +++ b/src/fragments/47/fragment47_2AD910.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AD910/func_83800020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AD910/func_8380008C.s") diff --git a/src/fragments/47/fragment47_2AE1F0.c b/src/fragments/47/fragment47_2AE1F0.c index 57063e6..d241eb9 100644 --- a/src/fragments/47/fragment47_2AE1F0.c +++ b/src/fragments/47/fragment47_2AE1F0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AE1F0/func_83800900.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AE1F0/func_83800AA0.s") diff --git a/src/fragments/47/fragment47_2AFDB0.c b/src/fragments/47/fragment47_2AFDB0.c index bb0067f..d41085e 100644 --- a/src/fragments/47/fragment47_2AFDB0.c +++ b/src/fragments/47/fragment47_2AFDB0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AFDB0/func_838024C0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/47/fragment47_2AFDB0/func_838024EC.s") diff --git a/src/fragments/55/fragment55_2BED40.c b/src/fragments/55/fragment55_2BED40.c index 0b72d2d..36637a5 100644 --- a/src/fragments/55/fragment55_2BED40.c +++ b/src/fragments/55/fragment55_2BED40.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2BED40/func_83000058.s") diff --git a/src/fragments/55/fragment55_2C0F90.c b/src/fragments/55/fragment55_2C0F90.c index 8cf476c..6456c96 100644 --- a/src/fragments/55/fragment55_2C0F90.c +++ b/src/fragments/55/fragment55_2C0F90.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_83002270.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C0F90/func_830022B0.s") diff --git a/src/fragments/55/fragment55_2C13F0.c b/src/fragments/55/fragment55_2C13F0.c index 16435fe..df426b4 100644 --- a/src/fragments/55/fragment55_2C13F0.c +++ b/src/fragments/55/fragment55_2C13F0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830026D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/55/fragment55_2C13F0/func_830027C8.s") diff --git a/src/fragments/6/fragment6.c b/src/fragments/6/fragment6.c index 227a108..9559c69 100644 --- a/src/fragments/6/fragment6.c +++ b/src/fragments/6/fragment6.c @@ -68,16 +68,50 @@ static unk_D_86002A98 D_86002A98[4] = { { 0x00E6, 0x00D7, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FF }, }; -static u8 D_86002AC8[] = { - 0x03, 0x03, 0xED, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x03, 0x03, 0xF1, 0x80, 0x00, 0x02, - 0x00, 0x00, 0x03, 0x03, 0xF5, 0x80, 0x00, 0x06, 0x00, 0x00, 0x03, 0x03, 0xF1, 0x80, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static unk_func_87801684 D_86002AC8[] = { + { + 0x0303ED80, + 0x000E, + }, + { + 0x0303F180, + 0x0002, + }, + { + 0x0303F580, + 0x0006, + }, + { + 0x0303F180, + 0x0002, + }, + { + NULL, + 0x0000, + }, }; -static u8 D_86002AF0[] = { - 0x03, 0x04, 0x05, 0x80, 0x00, 0x12, 0x00, 0x00, 0x03, 0x04, 0x09, 0x80, 0x00, 0x02, - 0x00, 0x00, 0x03, 0x04, 0x0D, 0x80, 0x00, 0x08, 0x00, 0x00, 0x03, 0x04, 0x09, 0x80, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static unk_func_87801684 D_86002AF0[] = { + { + 0x03040580, + 0x0012, + }, + { + 0x03040980, + 0x0002, + }, + { + 0x03040D80, + 0x0008, + }, + { + 0x03040980, + 0x0002, + }, + { + NULL, + 0x0000, + }, }; static u32 D_86002B18[] = { @@ -932,7 +966,6 @@ void func_86001F64(void) { s32 i; s32 j; s32 var_s1; - s32 var_s3_4; s32 var_s5; var_s5 = 1; @@ -1163,14 +1196,17 @@ void func_86002440(void) { void func_86002778(UNUSED s32 arg0, UNUSED s32 arg1) { unk_func_80007444* sp24; - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x20000, 0); sp24 = (unk_func_80007444*)func_80007444(0, 1, 3, 1, 2, 1); D_86003B7C = func_8001E94C(0x36, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, (void*)_4BD6B0_ROM_START, (void*)_4BE810_ROM_START, 0); - func_80004454((((u32)fragment31_VRAM & 0x0FF00000) >> 0x14) - 0x10, (void*)fragment31_ROM_START, - (void*)fragment32_ROM_START); - func_80004454((((u32)&D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, (void*)_5C7A70_ROM_START, (void*)_5C7AD0_ROM_START); + + ASSET_LOAD(D_1000000, _4BD6B0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); + + func_80004454((((u32)D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, _5C7A70_ROM_END); + func_86002440(); func_878029C0(); func_80007678(sp24); @@ -1194,6 +1230,8 @@ void func_86002778(UNUSED s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/fragments/61/fragment61_2D78B0.c b/src/fragments/61/fragment61_2D78B0.c index 5816ac9..c0ca652 100644 --- a/src/fragments/61/fragment61_2D78B0.c +++ b/src/fragments/61/fragment61_2D78B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2D78B0/func_84200020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2D78B0/func_84200088.s") diff --git a/src/fragments/61/fragment61_2DB900.c b/src/fragments/61/fragment61_2DB900.c index d1c5aa2..99c0af1 100644 --- a/src/fragments/61/fragment61_2DB900.c +++ b/src/fragments/61/fragment61_2DB900.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DB900/func_84204070.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DB900/func_84204210.s") diff --git a/src/fragments/61/fragment61_2DD710.c b/src/fragments/61/fragment61_2DD710.c index bd626b2..c99c3e3 100644 --- a/src/fragments/61/fragment61_2DD710.c +++ b/src/fragments/61/fragment61_2DD710.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DD710/func_84205E80.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DD710/func_84205F18.s") diff --git a/src/fragments/61/fragment61_2DFB60.c b/src/fragments/61/fragment61_2DFB60.c index 36eb074..84656e9 100644 --- a/src/fragments/61/fragment61_2DFB60.c +++ b/src/fragments/61/fragment61_2DFB60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DFB60/func_842082D0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2DFB60/func_84208410.s") diff --git a/src/fragments/61/fragment61_2E2C20.c b/src/fragments/61/fragment61_2E2C20.c index 1717c6f..0729238 100644 --- a/src/fragments/61/fragment61_2E2C20.c +++ b/src/fragments/61/fragment61_2E2C20.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2E2C20/func_8420B390.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/61/fragment61_2E2C20/func_8420B40C.s") diff --git a/src/fragments/62/fragment62_2EA8E0.c b/src/fragments/62/fragment62_2EA8E0.c index 606e458..97a0da2 100644 --- a/src/fragments/62/fragment62_2EA8E0.c +++ b/src/fragments/62/fragment62_2EA8E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2EA8E0/func_84300020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2EA8E0/func_84300058.s") diff --git a/src/fragments/62/fragment62_2EC3C0.c b/src/fragments/62/fragment62_2EC3C0.c index e806edb..518e576 100644 --- a/src/fragments/62/fragment62_2EC3C0.c +++ b/src/fragments/62/fragment62_2EC3C0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2EC3C0/func_84301B00.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2EC3C0/func_84301B48.s") diff --git a/src/fragments/62/fragment62_2F1D60.c b/src/fragments/62/fragment62_2F1D60.c index b1b9eee..ff8e98b 100644 --- a/src/fragments/62/fragment62_2F1D60.c +++ b/src/fragments/62/fragment62_2F1D60.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F1D60/func_843074A0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F1D60/func_843074EC.s") diff --git a/src/fragments/62/fragment62_2F23A0.c b/src/fragments/62/fragment62_2F23A0.c index e935ccb..578eff5 100644 --- a/src/fragments/62/fragment62_2F23A0.c +++ b/src/fragments/62/fragment62_2F23A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F23A0/func_84307AE0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F23A0/func_84307B28.s") diff --git a/src/fragments/62/fragment62_2F3CB0.c b/src/fragments/62/fragment62_2F3CB0.c index cfa5f9a..f60d688 100644 --- a/src/fragments/62/fragment62_2F3CB0.c +++ b/src/fragments/62/fragment62_2F3CB0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F3CB0/func_843093F0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F3CB0/func_84309448.s") diff --git a/src/fragments/62/fragment62_2F6930.c b/src/fragments/62/fragment62_2F6930.c index 04489c6..0d69928 100644 --- a/src/fragments/62/fragment62_2F6930.c +++ b/src/fragments/62/fragment62_2F6930.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F6930/func_8430C070.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F6930/func_8430C120.s") diff --git a/src/fragments/62/fragment62_2F74E0.c b/src/fragments/62/fragment62_2F74E0.c index 3378c33..a562948 100644 --- a/src/fragments/62/fragment62_2F74E0.c +++ b/src/fragments/62/fragment62_2F74E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F74E0/func_8430CC20.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2F74E0/func_8430CC84.s") diff --git a/src/fragments/62/fragment62_2FA4D0.c b/src/fragments/62/fragment62_2FA4D0.c index b2e53a2..f2ec720 100644 --- a/src/fragments/62/fragment62_2FA4D0.c +++ b/src/fragments/62/fragment62_2FA4D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2FA4D0/func_8430FC10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_2FA4D0/func_8430FC28.s") diff --git a/src/fragments/62/fragment62_304060.c b/src/fragments/62/fragment62_304060.c index 3d7b305..95d289e 100644 --- a/src/fragments/62/fragment62_304060.c +++ b/src/fragments/62/fragment62_304060.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_304060/func_843197A0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_304060/func_84319878.s") diff --git a/src/fragments/62/fragment62_3055E0.c b/src/fragments/62/fragment62_3055E0.c index b9f0e59..118485c 100644 --- a/src/fragments/62/fragment62_3055E0.c +++ b/src/fragments/62/fragment62_3055E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3055E0/func_8431AD20.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3055E0/func_8431AD68.s") diff --git a/src/fragments/62/fragment62_309ED0.c b/src/fragments/62/fragment62_309ED0.c index 91d718b..dba5708 100644 --- a/src/fragments/62/fragment62_309ED0.c +++ b/src/fragments/62/fragment62_309ED0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_309ED0/func_8431F610.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_309ED0/func_8431F680.s") diff --git a/src/fragments/62/fragment62_313250.c b/src/fragments/62/fragment62_313250.c index 4dd7063..56c958f 100644 --- a/src/fragments/62/fragment62_313250.c +++ b/src/fragments/62/fragment62_313250.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_313250/func_84328990.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_313250/func_84328A70.s") diff --git a/src/fragments/62/fragment62_315830.c b/src/fragments/62/fragment62_315830.c index 319dd5f..fc34e9f 100644 --- a/src/fragments/62/fragment62_315830.c +++ b/src/fragments/62/fragment62_315830.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_315830/func_8432AF70.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_315830/func_8432B0A4.s") diff --git a/src/fragments/62/fragment62_315D50.c b/src/fragments/62/fragment62_315D50.c index ed1c954..6e1f678 100644 --- a/src/fragments/62/fragment62_315D50.c +++ b/src/fragments/62/fragment62_315D50.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_315D50/func_8432B490.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_315D50/func_8432B4B0.s") diff --git a/src/fragments/62/fragment62_317E70.c b/src/fragments/62/fragment62_317E70.c index 72e3fae..7d6cabd 100644 --- a/src/fragments/62/fragment62_317E70.c +++ b/src/fragments/62/fragment62_317E70.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_317E70/func_8432D5B0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_317E70/func_8432D61C.s") diff --git a/src/fragments/62/fragment62_31A7E0.c b/src/fragments/62/fragment62_31A7E0.c index 8889ff9..b5ac246 100644 --- a/src/fragments/62/fragment62_31A7E0.c +++ b/src/fragments/62/fragment62_31A7E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31A7E0/func_8432FF20.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31A7E0/func_8432FF8C.s") diff --git a/src/fragments/62/fragment62_31AA30.c b/src/fragments/62/fragment62_31AA30.c index b8b1989..800081b 100644 --- a/src/fragments/62/fragment62_31AA30.c +++ b/src/fragments/62/fragment62_31AA30.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31AA30/func_84330170.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31AA30/func_84330218.s") diff --git a/src/fragments/62/fragment62_31C660.c b/src/fragments/62/fragment62_31C660.c index d26a14c..c0eafdf 100644 --- a/src/fragments/62/fragment62_31C660.c +++ b/src/fragments/62/fragment62_31C660.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31C660/func_84331DA0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_31C660/func_84331DC8.s") diff --git a/src/fragments/62/fragment62_3223B0.c b/src/fragments/62/fragment62_3223B0.c index 7939d77..24b552a 100644 --- a/src/fragments/62/fragment62_3223B0.c +++ b/src/fragments/62/fragment62_3223B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3223B0/func_84337AF0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3223B0/func_84337C6C.s") diff --git a/src/fragments/62/fragment62_3274D0.c b/src/fragments/62/fragment62_3274D0.c index 08a8367..c84bac3 100644 --- a/src/fragments/62/fragment62_3274D0.c +++ b/src/fragments/62/fragment62_3274D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3274D0/func_8433CC10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3274D0/func_8433CCFC.s") diff --git a/src/fragments/62/fragment62_328F10.c b/src/fragments/62/fragment62_328F10.c index 68586e2..512ee56 100644 --- a/src/fragments/62/fragment62_328F10.c +++ b/src/fragments/62/fragment62_328F10.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_328F10/func_8433E650.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_328F10/func_8433E758.s") diff --git a/src/fragments/62/fragment62_32A640.c b/src/fragments/62/fragment62_32A640.c index 200c435..d0ec334 100644 --- a/src/fragments/62/fragment62_32A640.c +++ b/src/fragments/62/fragment62_32A640.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_32A640/func_8433FD80.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_32A640/func_8433FDC0.s") diff --git a/src/fragments/62/fragment62_32B680.c b/src/fragments/62/fragment62_32B680.c index 9cbe296..77cd641 100644 --- a/src/fragments/62/fragment62_32B680.c +++ b/src/fragments/62/fragment62_32B680.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_32B680/func_84340DC0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_32B680/func_84340E40.s") diff --git a/src/fragments/62/fragment62_3438B0.c b/src/fragments/62/fragment62_3438B0.c index c1ab002..a49ab0f 100644 --- a/src/fragments/62/fragment62_3438B0.c +++ b/src/fragments/62/fragment62_3438B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3438B0/func_84358FF0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3438B0/func_84359000.s") diff --git a/src/fragments/62/fragment62_343BA0.c b/src/fragments/62/fragment62_343BA0.c index d991e22..9f5acc6 100644 --- a/src/fragments/62/fragment62_343BA0.c +++ b/src/fragments/62/fragment62_343BA0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_343BA0/func_843592E0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_343BA0/func_84359330.s") diff --git a/src/fragments/62/fragment62_34E1A0.c b/src/fragments/62/fragment62_34E1A0.c index c4543de..fa5d78f 100644 --- a/src/fragments/62/fragment62_34E1A0.c +++ b/src/fragments/62/fragment62_34E1A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34E1A0/func_843638E0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34E1A0/func_84363A5C.s") diff --git a/src/fragments/62/fragment62_34F1A0.c b/src/fragments/62/fragment62_34F1A0.c index 418a771..b203bfa 100644 --- a/src/fragments/62/fragment62_34F1A0.c +++ b/src/fragments/62/fragment62_34F1A0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34F1A0/func_843648E0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34F1A0/func_84364A18.s") diff --git a/src/fragments/62/fragment62_3502D0.c b/src/fragments/62/fragment62_3502D0.c index e22af81..821f195 100644 --- a/src/fragments/62/fragment62_3502D0.c +++ b/src/fragments/62/fragment62_3502D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3502D0/func_84365A10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3502D0/func_84365B88.s") diff --git a/src/fragments/62/fragment62_3512D0.c b/src/fragments/62/fragment62_3512D0.c index bba182a..0819c25 100644 --- a/src/fragments/62/fragment62_3512D0.c +++ b/src/fragments/62/fragment62_3512D0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3512D0/func_84366A10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3512D0/func_84366B38.s") diff --git a/src/fragments/62/fragment62_351F20.c b/src/fragments/62/fragment62_351F20.c index 2b8b687..85492c8 100644 --- a/src/fragments/62/fragment62_351F20.c +++ b/src/fragments/62/fragment62_351F20.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_351F20/func_84367660.s") diff --git a/src/fragments/62/fragment62_352570.c b/src/fragments/62/fragment62_352570.c index f1efda5..4a5b197 100644 --- a/src/fragments/62/fragment62_352570.c +++ b/src/fragments/62/fragment62_352570.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367CB0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367E2C.s") diff --git a/src/fragments/62/fragment62_353370.c b/src/fragments/62/fragment62_353370.c index 5e68226..7dc4f2e 100644 --- a/src/fragments/62/fragment62_353370.c +++ b/src/fragments/62/fragment62_353370.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_353370/func_84368AB0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_353370/func_84368C04.s") diff --git a/src/fragments/62/fragment62_3540B0.c b/src/fragments/62/fragment62_3540B0.c index 51eacda..902a4e4 100644 --- a/src/fragments/62/fragment62_3540B0.c +++ b/src/fragments/62/fragment62_3540B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_843697F0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3540B0/func_84369950.s") diff --git a/src/fragments/62/fragment62_355A00.c b/src/fragments/62/fragment62_355A00.c index 5f07ab0..aa09110 100644 --- a/src/fragments/62/fragment62_355A00.c +++ b/src/fragments/62/fragment62_355A00.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_355A00/func_8436B140.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_355A00/func_8436B270.s") diff --git a/src/fragments/62/fragment62_356730.c b/src/fragments/62/fragment62_356730.c index 26bb83c..03ddbd0 100644 --- a/src/fragments/62/fragment62_356730.c +++ b/src/fragments/62/fragment62_356730.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_356730/func_8436BE70.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_356730/func_8436BFB8.s") diff --git a/src/fragments/62/fragment62_357C30.c b/src/fragments/62/fragment62_357C30.c index ad7c12b..8877015 100644 --- a/src/fragments/62/fragment62_357C30.c +++ b/src/fragments/62/fragment62_357C30.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_357C30/func_8436D370.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_357C30/func_8436D4A4.s") diff --git a/src/fragments/62/fragment62_3597B0.c b/src/fragments/62/fragment62_3597B0.c index 9b1f000..748dae8 100644 --- a/src/fragments/62/fragment62_3597B0.c +++ b/src/fragments/62/fragment62_3597B0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3597B0/func_8436EEF0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_3597B0/func_8436EF48.s") diff --git a/src/fragments/62/fragment62_359F80.c b/src/fragments/62/fragment62_359F80.c index 6988d32..5e40caa 100644 --- a/src/fragments/62/fragment62_359F80.c +++ b/src/fragments/62/fragment62_359F80.c @@ -1,4 +1,3 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_359F80/func_8436F6C0.s") diff --git a/src/fragments/62/fragment62_359F90.c b/src/fragments/62/fragment62_359F90.c index 7e06652..1a1b06e 100644 --- a/src/fragments/62/fragment62_359F90.c +++ b/src/fragments/62/fragment62_359F90.c @@ -1,6 +1,5 @@ #include "global.h" - void func_8436F6D0(void) { } diff --git a/src/fragments/62/fragment62_35DF70.c b/src/fragments/62/fragment62_35DF70.c index e6463f8..f6f937d 100644 --- a/src/fragments/62/fragment62_35DF70.c +++ b/src/fragments/62/fragment62_35DF70.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_35DF70/func_843736B0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_35DF70/func_84373754.s") diff --git a/src/fragments/62/fragment62_361050.c b/src/fragments/62/fragment62_361050.c index 81c7b23..8992edf 100644 --- a/src/fragments/62/fragment62_361050.c +++ b/src/fragments/62/fragment62_361050.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_361050/func_84376790.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_361050/func_843767E4.s") diff --git a/src/fragments/63/fragment63_394120.c b/src/fragments/63/fragment63_394120.c index 59ac274..4a17512 100644 --- a/src/fragments/63/fragment63_394120.c +++ b/src/fragments/63/fragment63_394120.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_394120/func_84B00020.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_394120/func_84B000F0.s") diff --git a/src/fragments/63/fragment63_3974E0.c b/src/fragments/63/fragment63_3974E0.c index f43ef85..2e19431 100644 --- a/src/fragments/63/fragment63_3974E0.c +++ b/src/fragments/63/fragment63_3974E0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B033E0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3974E0/func_84B0345C.s") diff --git a/src/fragments/63/fragment63_397B10.c b/src/fragments/63/fragment63_397B10.c index aea19d5..d17ad89 100644 --- a/src/fragments/63/fragment63_397B10.c +++ b/src/fragments/63/fragment63_397B10.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_397B10/func_84B03A10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_397B10/func_84B03AB4.s") diff --git a/src/fragments/63/fragment63_39AC50.c b/src/fragments/63/fragment63_39AC50.c index a269356..532a9a8 100644 --- a/src/fragments/63/fragment63_39AC50.c +++ b/src/fragments/63/fragment63_39AC50.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_39AC50/func_84B06B50.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_39AC50/func_84B06C7C.s") diff --git a/src/fragments/63/fragment63_39BFB0.c b/src/fragments/63/fragment63_39BFB0.c index 1019490..721f921 100644 --- a/src/fragments/63/fragment63_39BFB0.c +++ b/src/fragments/63/fragment63_39BFB0.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_39BFB0/func_84B07EB0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_39BFB0/func_84B07F78.s") diff --git a/src/fragments/63/fragment63_3A0010.c b/src/fragments/63/fragment63_3A0010.c index 127bdff..af5eb5a 100644 --- a/src/fragments/63/fragment63_3A0010.c +++ b/src/fragments/63/fragment63_3A0010.c @@ -1,6 +1,5 @@ #include "global.h" - #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0BF10.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/63/fragment63_3A0010/func_84B0BFE4.s") diff --git a/src/fragments/7/fragment7.c b/src/fragments/7/fragment7.c index 80ce208..b674179 100644 --- a/src/fragments/7/fragment7.c +++ b/src/fragments/7/fragment7.c @@ -1890,13 +1890,17 @@ s32 func_86104380(void) { void func_86104474(UNUSED s32 arg0, UNUSED s32 arg1) { unk_func_80007444* sp24; - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x10000, 0); sp24 = func_80007444(0, 1, 3, 1, 2, 1); D_861054B4 = func_8001E94C(0x36, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, _4BD6B0_ROM_START, _4BE810_ROM_START, 0); - func_80004454((((u32)&D_81000000 & 0x0FF00000) >> 0x14) - 0x10, fragment31_ROM_START, fragment32_ROM_START); - func_80004454((((u32)&D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, _5C7AD0_ROM_START); + + ASSET_LOAD(D_1000000, _4BD6B0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); + + func_80004454((((u32)D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, _5C7A70_ROM_END); + func_86103E9C(); func_878029C0(); func_80007678(sp24); @@ -1922,6 +1926,8 @@ void func_86104474(UNUSED s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/fragments/8/fragment8.c b/src/fragments/8/fragment8.c index d28d2ef..103ec3a 100644 --- a/src/fragments/8/fragment8.c +++ b/src/fragments/8/fragment8.c @@ -1396,16 +1396,19 @@ void func_8620369C(s32 arg0, UNUSED s32 arg1) { D_86204718 = 0; } - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x10000, 0); sp24 = func_80007444(0, 0, 3, 1, 2, 1); D_86204714 = func_8001E94C(0x16, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, _4BD6B0_ROM_START, _4BE810_ROM_START, 0); - func_80004258(((u32)&D_4000000 & 0x0F000000) >> 0x18, _6C4CE0_ROM_START, _6C4E50_ROM_START, 0); - func_80004454((((u32)&D_81000000 & 0x0FF00000) >> 0x14) - 0x10, fragment31_ROM_START, fragment32_ROM_START); + ASSET_LOAD(D_1000000, _4BD6B0, 0); + ASSET_LOAD(D_4000000, _6C4CE0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); + func_80004454((((u32)&D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, _5C7AD0_ROM_START); + func_862030D0(); func_878029C0(); func_80007678(sp24); @@ -1431,6 +1434,8 @@ void func_8620369C(s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/fragments/9/fragment9.c b/src/fragments/9/fragment9.c index 498d793..f7c3b52 100644 --- a/src/fragments/9/fragment9.c +++ b/src/fragments/9/fragment9.c @@ -579,13 +579,17 @@ void func_86301234(void) { void func_86301474(UNUSED s32 arg0, UNUSED s32 arg1) { unk_func_80007444* sp24; - main_pool_push_state(0x4D494E49); + main_pool_push_state('MINI'); + func_80005E40(0x10000, 0); sp24 = func_80007444(0, 1, 3, 1, 2, 1); D_86301728 = func_8001E94C(0x26, 0); - func_80004258(((u32)&D_1000000 & 0x0F000000) >> 0x18, _4BD6B0_ROM_START, _4BE810_ROM_START, 0); - func_80004454((((u32)&D_81000000 & 0x0FF00000) >> 0x14) - 0x10, fragment31_ROM_START, fragment32_ROM_START); + + ASSET_LOAD(D_1000000, _4BD6B0, 0); + FRAGMENT_LOAD(func_80004454, fragment31); + func_80004454((((u32)&D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, _5C7AD0_ROM_START); + func_86301234(); func_878029C0(); func_80007678(sp24); @@ -601,7 +605,9 @@ void func_86301474(UNUSED s32 arg0, UNUSED s32 arg1) { func_800076C0(); func_8001E9CC(); func_80005EAC(); - main_pool_pop_state(0x4D494E49); + + main_pool_pop_state('MINI'); + func_87803118(); } diff --git a/src/gb_tower.c b/src/gb_tower.c index 647dbaa..a3a9445 100644 --- a/src/gb_tower.c +++ b/src/gb_tower.c @@ -1,6 +1,7 @@ #include "gb_tower.h" #include "hal_libc.h" #include "controller.h" +#include "29BA0.h" extern s32 func_8000DAFC(void*, s32, u16, s32, s32); diff --git a/src/main.c b/src/main.c index 940da1f..c273e28 100644 --- a/src/main.c +++ b/src/main.c @@ -5,7 +5,7 @@ #include "reset.h" #include "util.h" -extern void Game_Thread(void *arg); // thread 6 function +extern void Game_Thread(void* arg); // thread 6 function // entry .bss u8 D_8007ED80[0xF180 - 0xED80]; // unknown, start of .bss diff --git a/src/memmap.h b/src/memmap.h index ea31269..5b828ed 100644 --- a/src/memmap.h +++ b/src/memmap.h @@ -28,16 +28,15 @@ struct RelocTable { /* 0x04 */ u32 relocations[RELOCATIONS_SIZE]; // variable size }; -struct Fragment { - u32 ep1, ep2; // MIPS instructions to jump to the main function, - // typically something like "j 0x8xx00020; nop" - char str[8]; // "FRAGMENT" - u32 entrypoint; // typically 0x20 - u32 relocOffset; // relocOffset - u32 sizeInRom; - u32 sizeInRam; - char data[RELOCATIONS_SIZE]; // variable size -}; +typedef struct Fragment { + /* 0x00 */ u32 inst[2]; // MIPS instructions to jump to the main function, typically something like "j 0x8xx00020; nop" + /* 0x08 */ char str[8]; // "FRAGMENT" + /* 0x10 */ u32 entrypoint; // typically 0x20 + /* 0x14 */ u32 relocOffset; // relocOffset + /* 0x18 */ u32 sizeInRom; + /* 0x1C */ u32 sizeInRam; + /* 0x00 */ char data[RELOCATIONS_SIZE]; // variable size +} Fragment; void Memmap_SetSegmentMap(u32 id, uintptr_t vaddr, size_t size); uintptr_t Memmap_GetSegmentBaseVaddr(u32 id); diff --git a/src/stage_loader.c b/src/stage_loader.c index 9de1090..0088951 100644 --- a/src/stage_loader.c +++ b/src/stage_loader.c @@ -170,6 +170,12 @@ static u32 D_80068CB0[] = { 0x00111001, 0x11000011, 0x00011110, 0x11001101, 0x11001111, 0x10000110, 0x00110001, 0x10000000, 0x00000000, }; +static unk_D_800A7450 D_800A7450; +static unk_func_80007444* D_800A7464; +static Mtx D_800A7468; +static char pad_D_800A74A8[0x8]; +static Gfx* D_800A74B0; + s32 func_80007A58(void); void func_80007FC4(Gfx**, s32); void func_800080E0(void); diff --git a/src/stage_loader.h b/src/stage_loader.h index 7d0ac18..4286b28 100644 --- a/src/stage_loader.h +++ b/src/stage_loader.h @@ -3,15 +3,76 @@ #include "global.h" -s32 func_80006C6C(s32); -s32 func_80006CB4(s32); +typedef struct unk_D_800A7450 { + /* 0x00 */ u8 unk_00; + /* 0x01 */ u8 unk_01; + /* 0x02 */ u8 unk_02; + /* 0x03 */ u8 unk_03; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ void* unk_0C; + /* 0x10 */ char unk10[0x4]; +} unk_D_800A7450; // size >= 0x14 + +typedef struct unk_func_80007444 { + /* 0x00 */ s16 unk_00; + /* 0x02 */ s16 unk_02; + /* 0x04 */ s16 unk_04; + /* 0x06 */ s16 unk_06; + /* 0x08 */ s16 unk_08; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ s8 unk_0C; + /* 0x0D */ s8 unk_0D; + /* 0x0E */ s8 unk_0E; + /* 0x0F */ s8 unk_0F; + /* 0x10 */ s8 unk_10; + /* 0x11 */ u8 unk_11; + /* 0x12 */ u8 unk_12; + /* 0x13 */ u8 unk_13; + /* 0x14 */ u16 unk_14; + /* 0x16 */ s8 unk_16; + /* 0x18 */ void* unk_18[3]; +} unk_func_80007444; // size = 0x24 + +void func_800069F0(void); +s32 func_80006C04(s32 arg0); +s32 func_80006C6C(s32 arg0); +s32 func_80006CB4(s32 arg0); +void func_80006CF8(s32 arg0); +void func_80006D28(u32 arg0, u32 arg1); +void func_80006D50(void); +void func_80006F34(void); +void func_80006F98(void); +void func_80006FE8(void); +void func_80007234(void); +void func_8000725C(void); +void func_80007304(void); unk_func_80007444* func_80007444(s8 arg0, s8 arg1, s8 arg2, s8 arg3, s8 arg4, s32 arg5); +unk_func_80007444* func_800075F8(void); s32 func_80007604(void); -void func_80007678(unk_func_80007444*); +void func_80007614(unk_func_80007444* arg0); +void func_80007678(unk_func_80007444* arg0); void func_800076C0(void); +void func_8000771C(void); +void func_80007754(void); s32 func_80007778(void); -void func_800077B4(s32); +void func_800077B4(s32 arg0); +s32 func_80007820(u32 arg0, s32 (*arg1)(u8)); +s32 func_800078D4(s32 (*arg0)(u8), s32 arg1, s32 arg2); +void func_80007990(u16 arg0); void func_800079C4(void); +void* func_80007A2C(void); +s32 func_80007A58(void); +void func_80007A80(void); +void func_80007C3C(void); +void func_80007CD8(s16 arg0, s16 arg1, s16 arg2); +void func_80007DE4(s16 arg0, s16 arg1, s16 arg2); +void func_80007EF0(s16 arg0, s16 arg1, s8* arg2, s32 arg3); +void func_80007FC4(Gfx** arg0, s32 arg1); +void func_800080E0(void); +char* func_80008130(char* buffer, const char* data, size_t size); +s32 HAL_Printf(s16 x, s16 y, const char* fmt, ...); +s32 func_800081F8(s16 x, s16 y, const char* fmt, ...); #endif // _STAGE_LOADER_H_ diff --git a/yamls/us/rom.yaml b/yamls/us/rom.yaml index 1e9c0af..765a82b 100644 --- a/yamls/us/rom.yaml +++ b/yamls/us/rom.yaml @@ -333,6 +333,8 @@ - [0x6A3E0, data, rom_data_6A3E0] - [0x6A3F0, .data, math_util] - [0x6FC00, data, rom_data_6FC00] + - [0x76260, .data, 29BA0] + - [0x76280, data, rom_data_76280] - [0x79AE0, .data, 4CBC0] - [0x79C70, data, rom_data_79C70] @@ -387,8 +389,7 @@ - [0x7CCA0, rodata, rom_rodata_7CCA0] - [0x7CD10, rodata, rom_rodata_7CD10] - [0x7CD40, rodata, rom_rodata_7CD40] - - [0x7CEC0, rodata, rom_rodata_7CEC0] - - [0x7CED0, .rodata, 29BA0] + - [0x7CEC0, .rodata, 29BA0] - [0x7CFD0, rodata, rom_rodata_7CFD0] - [0x7D030, rodata, rom_rodata_7D030] - [0x7D040, rodata, rom_rodata_7D040] @@ -450,13 +451,16 @@ - {vram: 0x800A60B0, type: bss, name: unk_bss_4} - {vram: 0x800A7320, type: .bss, name: controller} - {vram: 0x800A7420, type: bss, name: unk_bss_3} + - {vram: 0x800A7450, type: .bss, name: stage_loader} - {vram: 0x800A74C0, type: .bss, name: crash_screen} - {vram: 0x800A7EA0, type: .bss, name: profiler} - {vram: 0x800A8100, type: bss, name: unk_bss_2} + - {vram: 0x800AE520, type: .bss, name: 29BA0} + - {vram: 0x800AF740, type: bss, name: unk_bss_7} - {vram: 0x800FF990, type: .bss, name: 4B940} - {vram: 0x800FF9B0, type: .bss, name: 4BDC0} - {vram: 0x800FF9C0, type: bss, name: unk_bss_10} - + # libleo - {vram: 0x80100740, type: .bss, name: libleo/driverominit} - {vram: 0x801007C0, type: bss, name: unk_bss_5}