Merge pull request #123 from Kelebek1/29BA0

29BA0
This commit is contained in:
Revo
2024-09-07 10:53:18 -04:00
committed by GitHub
164 changed files with 1345 additions and 375 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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

View File

@@ -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_

View File

@@ -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

View File

@@ -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

View File

@@ -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_

View File

@@ -4,6 +4,8 @@
#include "global.h"
void func_80021CA4(char*, u8);
s32 func_8002311C(s32);
void func_80024040(s16);
#endif // _6BC0_H_

View File

@@ -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);

View File

@@ -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;
}
}

77
src/29BA0.h Normal file
View File

@@ -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_

View File

@@ -1,4 +1,4 @@
#include "global.h"
#include "2C1C0.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/2C1C0/func_8002B5C0.s")

12
src/2C1C0.h Normal file
View File

@@ -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_

8
src/2E460.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef _2E460_H_
#define _2E460_H_
#include "global.h"
void func_8002EF44(void);
#endif // _2E460_H_

View File

@@ -1,3 +1,3 @@
#include "global.h"
#include "2FEA0.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/2FEA0/func_8002F2A0.s")

8
src/2FEA0.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef _2FEA0_H_
#define _2FEA0_H_
#include "global.h"
void func_8002F2A0(void);
#endif // _2FEA0_H_

View File

@@ -3,6 +3,7 @@
#include "global.h"
void func_8002FA40(void);
f32 func_80031A6C(f32);
void func_80031EF4(f32[4][4], Vec3f*);

View File

@@ -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;

View File

@@ -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_

22
src/DDC0.h Normal file
View File

@@ -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_

View File

@@ -1,4 +1,4 @@
#include "global.h"
#include "E1C0.h"
#include <PR/os_internal_reg.h>
#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);

10
src/E1C0.h Normal file
View File

@@ -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_

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,4 +1,3 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/1/fragment1_86C30/func_812072B0.s")

View File

@@ -1,6 +1,5 @@
#include "global.h"
void func_81207330(void) {
}

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,6 +1,5 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/15/fragment15_150AC0/func_86904070.s")
void func_869043F4(void) {

View File

@@ -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")

View File

@@ -1,4 +1,3 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/16/fragment16_15A2A0/func_86A018C0.s")

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,4 +1,3 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/17/fragment17_15F9B0/func_86B00020.s")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,6 +1,5 @@
#include "global.h"
void func_86B0A0B0(void) {
}

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,4 +1,3 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/31/fragment31_259030/func_81003D70.s")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -1,4 +1,3 @@
#include "global.h"
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/34/fragment34_26F9B0/func_8140DA40.s")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

Some files were not shown because too many files have changed in this diff Show More