484 lines
13 KiB
C
484 lines
13 KiB
C
#ifndef __COMMON_H__
|
|
#define __COMMON_H__
|
|
|
|
#include "PR/os.h"
|
|
#include "include_asm.h"
|
|
|
|
#include <ultra64.h>
|
|
|
|
extern OSDevMgr __osPiDevMgr;
|
|
extern OSPiHandle *__osCurrentHandle[2];
|
|
extern OSMesgQueue piEventQueue;
|
|
extern OSMesg piEventBuf[1];
|
|
|
|
extern u32 __osGetCause(void);
|
|
extern void __osSetCause(u32);
|
|
extern u32 __osGetCompare(void);
|
|
extern void __osSetCompare(u32);
|
|
extern u32 __osGetConfig(void);
|
|
extern void __osSetConfig(u32);
|
|
extern void __osSetCount(u32);
|
|
extern u32 __osGetSR(void);
|
|
extern void __osSetSR(u32);
|
|
extern u32 __osDisableInt(void);
|
|
extern void __osRestoreInt(u32);
|
|
|
|
#include "libmus.h"
|
|
|
|
typedef u8 bool;
|
|
|
|
#define false 0
|
|
#define true 1
|
|
|
|
#define MAX_BYTES_TO_READ 512
|
|
|
|
#define ARRAY_LENGTH(x) ((sizeof(x)) / (sizeof(x[0])))
|
|
|
|
#include "character.h"
|
|
#include "item.h"
|
|
#include "ability.h"
|
|
#include "class.h"
|
|
|
|
typedef struct {
|
|
/* 0x00 */ s32 field_0x0;
|
|
/* 0x04 */ s32 field_0x4;
|
|
/* 0x08 */ s32 field_0x8;
|
|
/* 0x0c */ s32 field_0xc;
|
|
/* 0x10 */ s32 field_0x10;
|
|
/* 0x14 */ s32 field_0x14;
|
|
/* 0x18 */ s32 field_0x18;
|
|
/* 0x1C */ s32 field_0x1c;
|
|
/* 0x20 */ s32 field_0x20;
|
|
/* 0x24 */ unsigned long handle;
|
|
/* 0x28 */ s32 field_0x28;
|
|
/* 0x2C */ s32 field_0x2c;
|
|
/* 0x30 */ s32 field_0x30;
|
|
/* 0x34 */ s32 field_0x34;
|
|
/* 0x38 */ s32 field_0x38;
|
|
/* 0x3C */ s32 field_0x3c;
|
|
/* 0x40 */ s32 field_0x40;
|
|
/* 0x44 */ s32 field_0x44;
|
|
/* 0x48 */ void* dst_addr;
|
|
/* 0x4C */ s32 field_0x4c;
|
|
} SomethingMusic; // size:0x50
|
|
|
|
typedef struct {
|
|
/* 0x0 */ void* next;
|
|
/* 0x4 */ OSMesgQueue* mq;
|
|
/* 0x8 */ s16 flags;
|
|
/* 0xa */ s16 field_0xa;
|
|
/* 0xc */ s32 field_0xc;
|
|
} Stack__dma_load_loop; // size:0x10
|
|
|
|
typedef struct {
|
|
/* 0x00 */ OSMesgQueue field_0x0;
|
|
/* 0x30 */ u8 field_0x30[0x58];
|
|
/* 0x88 */ OSMesgQueue field_0x70;
|
|
/* 0x74 */ u8 field_0x74[0x20];
|
|
/* 0xa8 */ OSMesgQueue field_0xa8;
|
|
} Unk0;
|
|
|
|
|
|
extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7];
|
|
extern void* musCurrentPtrBank;
|
|
extern void* D_800B1828;
|
|
|
|
extern s32 D_800E8B14;
|
|
extern Unk0 MQ_800E8B4C;
|
|
extern s32 __SCREEN_IS_NOT_BLACK;
|
|
extern s32 D_800A9EB0;
|
|
extern s32 D_800A9EE0;
|
|
extern s32 D_800C4B20;
|
|
extern void* D_800C4CE0;
|
|
extern s32 D_A9EF0;
|
|
extern s32 D_800C4B30;
|
|
|
|
extern OSPiHandle* CART_HANDLE;
|
|
extern OSMesgQueue MQ_800BE030;
|
|
extern OSMesg OSMESG_800BE048[0x32];
|
|
extern OSThread THREAD_CONTROLLER;
|
|
|
|
extern s32 __SCREEN_IS_NOT_BLACK;
|
|
extern OSMesg D_800BBE60[8];
|
|
|
|
extern OSMesgQueue MQ_CONTROLLER;
|
|
extern OSMesgQueue MQ_800E7988;
|
|
extern OSThread THREAD_CONTROLLER;
|
|
|
|
extern OSPiHandle* PTR_CART_ROM_HANDLE;
|
|
|
|
extern s32 D_800C4B30;
|
|
extern OSMesgQueue MQ_CONTROLLER;
|
|
extern OSMesgQueue MQ_800E9BF0;
|
|
extern u8 D_800A9FF8;
|
|
|
|
extern OSContStatus __GLOBAL_CONT_STATUS[MAXCONTROLLERS];
|
|
extern OSMesgQueue MQ_CONTROLLER;
|
|
extern void (*D_800A9FE0)(s16);
|
|
extern OSMesgQueue MQ_800C4A00;
|
|
extern OSContPad __GLOBAL_CONTROLLER_DATA;
|
|
|
|
extern u8 D_800AA040;
|
|
extern void (*SWAP_BUFFER_FUNC_800A9E8C)(void** buffers);
|
|
|
|
extern void (*D_800AA090)(s32);
|
|
extern void (*D_800AA094)();
|
|
extern s32 D_800E79A4;
|
|
extern OSMesgQueue MQ_800C4C28;
|
|
extern OSMesg OSMESG_800BE1A0[8];
|
|
extern u8 SP_THREAD_800BE1C0[1];
|
|
extern OSThread THREAD_800BE1C0;
|
|
extern void* D_800AA41C;
|
|
extern u8 D_594284;
|
|
|
|
extern void (*SWAP_BUFFER_FUNC)(void** buffers);
|
|
|
|
extern Stack__dma_load_loop *D_800E9178[0];
|
|
extern u8 __MAIN_NOT_NULL_INF_LOOP;
|
|
extern OSMesgQueue MQ_800B9C40;
|
|
extern s8 D_800E918D;
|
|
|
|
|
|
extern void romCopy(u32 devAddr, void* dramAddr, u32 size, s32 direction);
|
|
extern void romCopy_512(const void* src, void* dst, u32 len);
|
|
extern void __calls_romCopy_8009DA50(u8* src, u8* dst, u32 len);
|
|
|
|
extern void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* arg1, s16 flags);
|
|
extern void Stack__dma_load_loop_delete(Stack__dma_load_loop* arg0);
|
|
|
|
extern void obInitializePi();
|
|
|
|
extern void __set_black();
|
|
extern void __calls_osViBlack(bool black);
|
|
|
|
extern void __start_thread_800B9C88();
|
|
extern void __start_thread_800BE1C0();
|
|
|
|
extern void func_80089804(s32*, s32, s32, s32);
|
|
extern void func_80089A10();
|
|
extern void func_80089AB0(s32*, s32);
|
|
|
|
extern void __osViSwapBuffer_3(void** buffers);
|
|
extern void set_swap_buffer_func(void (*arg0)(void**));
|
|
|
|
extern s32 func_80089CF8(s16 arg0, s32 arg1);
|
|
extern void __controller_thread_80089D9C(void*);
|
|
|
|
extern void __start_copy_global_controller_data(void);
|
|
extern void __end_copy_global_controller_data(void);
|
|
|
|
extern s32 __read_controller(OSContPad* data, u32 flags);
|
|
extern s32 __real_read_controller(void);
|
|
extern s32 __calls_read_controller_0(s16* arg0);
|
|
|
|
extern void func_8008A354();
|
|
extern void func_8008A37C();
|
|
|
|
extern void func_8008B130(u8*);
|
|
extern void func_8008B1D0(u8*);
|
|
|
|
extern void __start_thread_800BE1C0(void);
|
|
extern void __thread_8008AFE0(void*);
|
|
|
|
extern void func_8008949C(void** buffers);
|
|
extern void func_8008350C();
|
|
extern void func_8008B1D0(u8*);
|
|
|
|
typedef struct {
|
|
/* 0x00 */ u8* dst;
|
|
/* 0x04 */ u8* field_0x4;
|
|
/* 0x08 */ u8* src_start;
|
|
/* 0x0c */ u8* src_end;
|
|
/* 0x10 */ u8* bss_start;
|
|
/* 0x14 */ u8* bss_end;
|
|
/* 0x18 */ u8* text_start;
|
|
/* 0x1c */ u8* text_end;
|
|
/* 0x20 */ u8* data_start;
|
|
/* 0x24 */ u8* data_end;
|
|
} OverlayEntry; // size:0x28
|
|
|
|
extern u8* __SOME_OVERLAY_ID_ARRAY[11];
|
|
extern OverlayEntry __SOME_OVERLAY_TABLE[11];
|
|
|
|
extern u8* func_80076188(void);
|
|
extern void func_80076194(void);
|
|
extern void func_800761A4(void);
|
|
extern void __loads_overlay_array(s32 arg0);
|
|
extern u8 __get_overlay_index(s32 arg0);
|
|
extern void func_80076324(s32 arg0);
|
|
|
|
extern void func_800E9C20(void);
|
|
|
|
extern s8 D_800AEE72;
|
|
extern s16 D_800C4A18;
|
|
extern s16 D_800C4AD8;
|
|
extern s16 D_800C4BCA;
|
|
extern s16 D_800C4C08;
|
|
extern s16 D_800E7A1C;
|
|
extern s16 D_800E7D68;
|
|
extern void func_80073164(u8 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6);
|
|
|
|
extern s8 D_800A81F0;
|
|
|
|
typedef struct {
|
|
/* 0x00 */ void(*field_0x0)(u32, void*, u32, s32);
|
|
/* 0x04 */ void* field_0x4;
|
|
/* 0x08 */ u32 field_0x8;
|
|
/* 0x0c */ u32 field_0xc;
|
|
/* 0x10 */ u32 field_0x10;
|
|
/* 0x14 */ u32 field_0x14;
|
|
/* 0x18 */ u32 field_0x18;
|
|
/* 0x1c */ u32 field_0x1c;
|
|
/* 0x20 */ u32 field_0x20;
|
|
} Arg_800712C4;
|
|
|
|
typedef struct {
|
|
/* 0x00 */ Arg_800712C4* field_0x0;
|
|
/* 0x04 */ Arg_800712C4* field_0x4;
|
|
/* 0x08 */ Arg_800712C4* field_0x8;
|
|
/* 0x0c */ Arg_800712C4* field_0xc;
|
|
/* 0x10 */ Arg_800712C4* field_0x10;
|
|
/* 0x14 */ Arg_800712C4* field_0x14;
|
|
} Unk_800A81C0; // size:0x18
|
|
|
|
extern Unk_800A81C0 D_800A81C0[2];
|
|
|
|
extern void func_800712C4(Arg_800712C4*);
|
|
|
|
extern u8 D_80197168[0x10];
|
|
extern s32 D_80196F58;
|
|
extern u8 D_801951A1;
|
|
extern u8 D_80197AE7[8];
|
|
|
|
extern void func_80186160(void);
|
|
extern void func_80186178(void);
|
|
extern void func_80186190(s32 arg0, s32 arg1);
|
|
extern s32 func_80186210(s32 arg0);
|
|
extern s32 func_80186240(s32 arg0);
|
|
extern void func_80186284(s32 arg0);
|
|
extern void func_80186290(void);
|
|
extern void func_801862A8(void);
|
|
|
|
extern const char STR_CREATING_NEW_DATA[];
|
|
extern const char STR_CREATING_A_NEW_FILE[];
|
|
extern const char STR_ADDING_NEW_DATA[];
|
|
extern const char STR_buSave_SAVING[];
|
|
extern const char STR_UNUSEDMALLOCNO_INSUFFICIENT_MEMORY[];
|
|
|
|
extern const char STR_LHa___s_s__s[];
|
|
extern const char STR_Error[];
|
|
extern const char STR_Fatal_error[];
|
|
extern const char STR_Invalid_header_LHarc_file_[];
|
|
extern const char STR_rb[];
|
|
extern const char STR_wb[];
|
|
extern const char STR_Unknown_method_skiped[];
|
|
|
|
extern const char STR_EMPTY[];
|
|
|
|
extern void AddHeap(void* start, u32 length);
|
|
extern void __some_logging(const char* format, ...);
|
|
|
|
|
|
extern void main_(void*);
|
|
extern void __idle_start_4_threads(s32, s32);
|
|
extern void (*D_800E7A18)();
|
|
|
|
extern void boot(void);
|
|
extern void idle(void* arg);
|
|
|
|
extern OSThread THREAD_FIRST_DMA_LOAD;
|
|
extern u8 SP_THREAD_FIRST_DMA_LOAD[];
|
|
extern OSThread THREAD_IDLE;
|
|
extern u8 SP_THREAD_IDLE[];
|
|
|
|
extern void* __GLOBAL_WITH__inc_menu_timer[];
|
|
extern void* D_8018FB0C[];
|
|
extern void* D_8018FAF8[];
|
|
extern void* D_8018FAE4[];
|
|
|
|
extern s32 __inc_menu_timer();
|
|
extern void func_801707F4();
|
|
extern void func_8017223C(s32);
|
|
extern void func_80172368();
|
|
extern void func_80172394();
|
|
extern void __resets_menu_timer(void);
|
|
extern u16 D_800C4C26;
|
|
extern u16 D_8018F1A2;
|
|
extern s32 D_8018FB34;
|
|
|
|
extern void func_801D0840(void);
|
|
|
|
extern void func_80198080(s32);
|
|
extern void func_80173610(void);
|
|
extern void func_801B00B0(void);
|
|
extern void func_8016C814(void);
|
|
extern void func_801C889C(s32 arg0);
|
|
extern void func_8007337C(void);
|
|
extern void func_801C8864(void);
|
|
|
|
extern u8 D_800A872C;
|
|
|
|
extern CharacterSlot CHARACTER_SLOT[0x64];
|
|
|
|
#define RANK_NONE 0
|
|
#define RANK_UNIT_LEADER 1
|
|
#define RANK_LEGION_LEADER 2
|
|
|
|
|
|
extern struct {
|
|
/* 0x0 */ u8 field_0x0;
|
|
/* 0x1 */ u8 field_0x1;
|
|
/* 0x2 */ u8 field_0x2;
|
|
/* 0x3 */ u8 field_0x3;
|
|
/* 0x4 */ u8 field_0x4;
|
|
/* 0x5 */ u8 field_0x5;
|
|
} D_8018ECE4[]; // size:0x6
|
|
|
|
extern struct {
|
|
/* 0x00 */ char battalion_name[0x14];
|
|
|
|
/* 0x14 */ s32 field_0x14;
|
|
/* 0x18 */ s16 field_0x18;
|
|
/* 0x1a */ u16 field_0x1a;
|
|
/* 0x1c */ u8 field_0x1c;
|
|
/* 0x1d */ u8 field_0x1d;
|
|
/* 0x1e */ u8 field_0x1e;
|
|
/* 0x1f */ u8 field_0x1f;
|
|
|
|
/* 0x20 */ u8 field_0x20;
|
|
/* 0x21*/ u8 field_0x21;
|
|
/* 0x22 */ u8 field_0x22;
|
|
/* 0x23 */ u8 field_0x23;
|
|
/* 0x24 */ u8 field_0x24;
|
|
/* 0x25 */ u8 field_0x25;
|
|
/* 0x26 */ u8 field_0x26;
|
|
/* 0x27 */ u8 field_0x27;
|
|
/* 0x28 */ u8 field_0x28;
|
|
/* 0x29 */ u8 field_0x29;
|
|
/* 0x2a */ u8 field_0x2a;
|
|
/* 0x2b */ u8 field_0x2b;
|
|
/* 0x2c */ u8 field_0x2c;
|
|
/* 0x2d */ u8 field_0x2d;
|
|
/* 0x2e */ u8 field_0x2e;
|
|
/* 0x2f */ u8 field_0x2f;
|
|
|
|
/* 0x30 */ u8 field_0x30;
|
|
/* 0x31 */ u8 field_0x31;
|
|
/* 0x32 */ u8 field_0x32;
|
|
/* 0x33 */ u8 field_0x33;
|
|
/* 0x34 */ u8 field_0x34;
|
|
/* 0x35 */ u8 field_0x35;
|
|
/* 0x36 */ u8 field_0x36;
|
|
/* 0x37 */ u8 field_0x37;
|
|
/* 0x38 */ u8 field_0x38;
|
|
/* 0x39 */ u8 field_0x39;
|
|
/* 0x3a */ u8 field_0x3a;
|
|
/* 0x3b */ u8 field_0x3b;
|
|
/* 0x3c */ u8 field_0x3c;
|
|
/* 0x3d */ u8 field_0x3d;
|
|
/* 0x3e */ u8 field_0x3e;
|
|
/* 0x3f */ u8 field_0x3f;
|
|
|
|
/* 0x40 */ u8 field_0x40;
|
|
/* 0x41 */ u8 field_0x41;
|
|
/* 0x42 */ u8 field_0x42;
|
|
/* 0x43 */ u8 field_0x43;
|
|
/* 0x44 */ s16 field_0x44;
|
|
/* 0x46 */ s16 field_0x46;
|
|
/* 0x48 */ s16 field_0x48;
|
|
/* 0x4a */ s16 field_0x4a;
|
|
/* 0x4b */ u8 field_0x4b;
|
|
/* 0x4c */ s8 field_0x4c;
|
|
/* 0x4d */ s8 field_0x4d;
|
|
/* 0x4e */ s8 field_0x4e;
|
|
/* 0x4f */ u8 field_0x4f;
|
|
|
|
/* 0x50 */ u8 field_0x50;
|
|
/* 0x51 */ u8 field_0x51;
|
|
/* 0x52 */ u8 field_0x52;
|
|
/* 0x53 */ u8 field_0x53;
|
|
/* 0x54 */ u8 field_0x54;
|
|
/* 0x55 */ u8 field_0x55;
|
|
/* 0x56 */ u8 field_0x56;
|
|
/* 0x57 */ u8 field_0x57;
|
|
/* 0x58 */ u8 field_0x58;
|
|
/* 0x59 */ u8 field_0x59;
|
|
/* 0x5a */ u8 field_0x5a;
|
|
/* 0x5b */ u8 field_0x5b;
|
|
/* 0x5c */ u8 field_0x5c;
|
|
/* 0x5d */ u8 field_0x5d;
|
|
/* 0x5e */ u8 field_0x5e;
|
|
/* 0x5f */ u8 field_0x5f;
|
|
|
|
/* 0x60 */ u8 field_0x60;
|
|
/* 0x61 */ u8 field_0x61;
|
|
/* 0x62 */ u8 field_0x62;
|
|
/* 0x63 */ u8 field_0x63;
|
|
/* 0x64 */ u8 field_0x64;
|
|
/* 0x65 */ u8 field_0x65;
|
|
/* 0x66 */ u8 field_0x66;
|
|
/* 0x67 */ u8 field_0x67;
|
|
/* 0x68 */ u8 field_0x68;
|
|
/* 0x69 */ u8 field_0x69;
|
|
/* 0x6a */ u8 field_0x6a;
|
|
/* 0x6b */ u8 field_0x6b;
|
|
/* 0x6c */ u8 field_0x6c;
|
|
/* 0x6d */ u8 field_0x6d;
|
|
/* 0x6e */ u8 field_0x6e;
|
|
/* 0x6f */ u8 field_0x6f;
|
|
|
|
/* 0x70 */ u8 field_0x70;
|
|
/* 0x71 */ u8 field_0x71;
|
|
/* 0x72 */ u8 field_0x72;
|
|
/* 0x73 */ u8 field_0x73;
|
|
/* 0x74 */ u8 field_0x74;
|
|
/* 0x75 */ u8 field_0x75;
|
|
/* 0x76 */ u8 field_0x76;
|
|
/* 0x77 */ u8 field_0x77;
|
|
/* 0x78 */ u8 field_0x78;
|
|
/* 0x79 */ u8 field_0x79;
|
|
/* 0x7a */ u8 field_0x7a;
|
|
/* 0x7b */ u8 field_0x7b;
|
|
/* 0x7c */ u8 field_0x7c;
|
|
/* 0x7d */ u8 field_0x7d;
|
|
/* 0x7e */ u8 field_0x7e;
|
|
/* 0x7f */ u8 field_0x7f;
|
|
|
|
/* 0x80 */ u8 field_0x80;
|
|
/* 0x81 */ u8 field_0x81;
|
|
/* 0x82 */ u8 field_0x82;
|
|
/* 0x83 */ u8 field_0x83;
|
|
/* 0x84 */ u8 field_0x84;
|
|
/* 0x85 */ u8 field_0x85;
|
|
/* 0x86 */ u8 field_0x86;
|
|
/* 0x87 */ u8 field_0x87;
|
|
/* 0x88 */ u8 field_0x88;
|
|
/* 0x89 */ u8 field_0x89;
|
|
/* 0x8a */ u8 field_0x8a;
|
|
/* 0x8b */ u8 field_0x8b;
|
|
/* 0x8c */ u8 field_0x8c;
|
|
/* 0x8d */ u8 field_0x8d;
|
|
/* 0x8e */ u8 field_0x8e;
|
|
/* 0x8f */ u8 field_0x8f;
|
|
|
|
/* 0x91 */ s8 field_0x91;
|
|
/* 0x92 */ u8 field_0x92;
|
|
/* 0x93 */ u8 field_0x93;
|
|
} __CONTAINS_BATTALION_NAME; // size:0x94
|
|
|
|
extern char DEFAULT_BATTALION_NAME[];
|
|
|
|
extern musConfig __MUS_CONFIG_8010A710;
|
|
extern OSIoMesg __MUS_MEM_800B186C[];
|
|
|
|
extern void *__virtual_mem_alloc(u32);
|
|
extern void *__MusIntMemMalloc(s32 size);
|
|
extern ALHeap D_800B1A70;
|
|
|
|
|
|
extern void __character_initialise(CharacterSlot *arg0, u8 level);
|
|
extern u16 character_get_item(CharacterSlot* character, u8 slot);
|
|
extern void __character_handle_levelup(CharacterSlot *slot);
|
|
|
|
|
|
#endif |