ogrebattle64/include/common.h

567 lines
15 KiB
C

#ifndef __COMMON_H__
#define __COMMON_H__
#include <ultra64.h>
#include "segment_symbols.h"
#include "assert.h"
#include "include_asm.h"
typedef u8 qu08_t;
typedef u16 qu016_t;
typedef s16 qs48_t;
typedef s16 qs510_t;
typedef u16 qu510_t;
typedef u16 qs102_t;
typedef u16 qu102_t;
typedef s16 qs105_t;
typedef u16 qu105_t;
typedef s16 qs132_t;
typedef s16 qs142_t;
typedef s32 qs1516_t;
typedef s32 qs1616_t;
typedef s32 qs205_t;
#define qu08(n) ((qu08_t)((n)*0x100))
#define qu016(n) ((qu016_t)((n)*0x10000))
#define qs48(n) ((qs48_t)((n)*0x0100))
#define qs510(n) ((qs510_t)((n)*0x0400))
#define qu510(n) ((qu510_t)((n)*0x0400))
#define qs102(n) ((qs102_t)((n)*0x0004))
#define qu102(n) ((qu102_t)((n)*0x0004))
#define qs105(n) ((qs105_t)((n)*0x0020))
#define qu105(n) ((qu105_t)((n)*0x0020))
#define qs132(n) ((qs132_t)((n)*0x0004))
#define qs142(n) ((qs142_t)((n)*0x0004))
#define qs1516(n) ((qs1516_t)((n)*0x00010000))
#define qs1616(n) ((qs1616_t)((n)*0x00010000))
#define qs205(n) ((qs205_t)((n)*0x00000020))
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 OS_TV_TYPE_PAL 0
#define OS_TV_TYPE_NTSC 1
#define OS_TV_TYPE_MPAL 2
#define MAX_BYTES_TO_READ 512
#define ARRAY_LENGTH(x) ((sizeof(x)) / (sizeof(x[0])))
#define SCREEN_WIDTH_MIN 320
#define SCREEN_HEIGHT_MIN 240
#define SCREEN_WIDTH_MAX 640
#define SCREEN_HEIGHT_MAX 480
#define DECLARE_STACK(name, size) u64 name[size / sizeof(u64)]
// Stacks grow backwards (towards smaller addresses)
#define STACK_START(stack) ((u8*)(&stack) + sizeof(stack))
#include "character.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 */ musHandle handle;
/* 0x28 */ s32 field_0x28;
/* 0x2C */ s32 index;
/* 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_800EB0B0;
extern SomethingMusic __MAYBE_SONG_800EB100;
extern SomethingMusic __MAYBE_SONG_800EB150;
extern SomethingMusic __MAYBE_SONG_800EB1A0;
extern SomethingMusic __MAYBE_SONG_800EB1F0;
extern SomethingMusic __MAYBE_SONG_800EB240;
extern SomethingMusic __MAYBE_SONG_800EB290;
extern SomethingMusic* __MAYBE_SONG_ARRAY_800A8218[7];
extern void* musCurrentPtrBank;
extern void* D_800B1828;
extern s32 D_800E8B14;
extern s32 D_A9EF0;
extern OSPiHandle* CART_HANDLE;
extern OSMesgQueue MQ_800E7988;
extern OSContPad obContData[MAXCONTROLLERS];
extern void (*SWAP_BUFFER_FUNC_800A9E8C)(void** buffers);
extern void* D_800AA41C;
extern u8 D_594284;
extern Stack__dma_load_loop *D_800E9178[0];
extern u8 nuScPreNMIFlag;
extern OSMesgQueue MQ_800B9C40;
extern s8 D_800E918D;
extern void romCopy(u32 devAddr, void* dramAddr, u32 size, s32 direction);
extern void __calls_romCopy_8009DA50(void* src, void* dst, u32 len);
extern void __calls_osViBlack(bool black);
extern void __osViSwapBuffer_3(void** buffers);
extern void func_8008350C();
extern void obSetViMode(s32);
typedef struct {
/* 0x00 */ u32 vram_start;
/* 0x04 */ u32 vram_end;
/* 0x08 */ u32 src_start;
/* 0x0c */ u32 src_end;
/* 0x10 */ u32 bss_start;
/* 0x14 */ u32 bss_end;
/* 0x18 */ u32 text_start;
/* 0x1c */ u32 text_end;
/* 0x20 */ u32 data_start;
/* 0x24 */ u32 data_end;
} OverlayEntry; // size:0x28
ASSERT_SIZE(OverlayEntry, 0x28);
extern u8* __SOME_OVERLAY_ID_ARRAY[];
extern OverlayEntry __SOME_OVERLAY_TABLE[];
typedef struct {
/* 0x00 */ void (*setup)(void);
/* 0x04 */ void* field_0x4;
/* 0x08 */ void* field_0x8;
/* 0x0c */ void* field_0xc;
/* 0x10 */ u32 field_0x10;
} OverlaySomething; // size:0x14
ASSERT_SIZE(OverlaySomething, 0x14);
extern OverlaySomething* (*D_800AF028[])(void);
extern OverlaySomething* D_800E8294;
extern OverlaySomething __OVERLAY_INFO_79730_65C50;
extern OverlaySomething __OVERLAY_INFO_87200_65C64;
extern OverlaySomething __OVERLAY_INFO_87200_65C78;
extern OverlaySomething __OVERLAY_INFO_71280_65C8C;
extern OverlaySomething __OVERLAY_INFO_71280_65CA0;
extern OverlaySomething *__get_overlay_info_71280_65C8C(void);
extern void __setup_overlay_79730(void);
extern void __setup_overlay_87200(void);
extern void __setup_overlay_71280_51674(void);
extern void __setup_overlay_71280_51940(void);
extern OverlaySomething* 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 u16 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 Arg_800712C4* 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_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 nuBoot(void);
extern void obMain(void*);
extern OverlaySomething __OVERLAY_INFO_resets_menu_timer;
extern void* D_8018FB0C[];
extern OverlaySomething __OVERLAY_INFO_8018FAF8;
extern OverlaySomething __OVERLAY_INFO_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 __maybeBlockingRetraceFunc;
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 OverlaySomething 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 audio_heap;
extern void __character_initialise(CharacterSlot *arg0, u8 level);
extern u16 character_get_item(CharacterSlot* character, u8 slot);
extern void __character_handle_levelup(CharacterSlot *slot);
typedef struct {
/* 0x0 */ char *name;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
/* 0x6 */ u16 buy_price;
/* 0x8 */ u8 field_0x8;
/* 0x9 */ u8 field_0x9;
/* 0xa */ u8 field_0xa;
/* 0xb */ u8 field_0xb;
} ItemData; // size:0xc
extern ItemData obItemData[45];
extern char *obItemGetName(u16 arg0);
extern u8 item_get_field_0x4(u16 arg0);
extern u8 item_get_field_0x5(u16 arg0);
extern u8 item_get_field_0x8(u16 arg0);
extern u8 item_get_field_0x9(u16 arg0);
extern void func_80179354();
extern Gfx* obPtrDisplayList;
extern Gfx** obPtrPtrDisplayList;
extern Gfx DISPLAY_LIST_80186BD0[];
extern Gfx DISPLAY_LIST_80186D90[];
extern Gfx DISPLAY_LIST_8018FC80[];
extern Gfx DISPLAY_LIST_80186E70[];
extern Gfx DISPLAY_LIST_801869C8[];
extern Gfx DISPLAY_LIST_801FCF70[];
extern Gfx DISPLAY_LIST_801FCF98[];
extern Gfx DISPLAY_LIST_800A96C8[];
extern Vp obVpMinResolution;
extern Vp obVpMaxResolution;
extern Gfx obDlSetupMinResolution[];
extern Gfx obDlSetupMaxResolution[];
extern Lights2 LIGHTS_801869A0;
extern SomethingMusic __MAYBE_SONG_800EB0B0;
extern SomethingMusic __MAYBE_SONG_800EB100;
extern SomethingMusic __MAYBE_SONG_800EB150;
extern SomethingMusic __MAYBE_SONG_800EB240;
extern SomethingMusic __MAYBE_SONG_800EB290;
extern char *obStrategyName[];
extern char *obGetStrategyName(u8 index);
extern s16 D_800AEE90;
extern s16 D_800AEF10;
extern s8 D_800A8210;
extern s8 D_800A8211;
extern s8 D_800A8212;
extern u8 D_800A8213;
u8 __get_compared_osTvType();
u8 __reset_compared_osTvType();
void func_8016CD50(u8 arg0);
void __inc_compared_osTvType(u8 arg0);
extern s32 func_80173B60(s32);
extern s32 D_800AF0B0;
extern void Unpack(u8* buffer, u32 size);
typedef struct {
/* 0x00 */ s32 field_0x0;
/* 0x04 */ OSMesgQueue* queue;
/* 0x08 */ u8 format;
/* 0x09 */ u8 field_0x9[3];
/* 0x0C */ s32 size;
/* 0x10 */ u8* buffer;
} OBUnpackMesg;
extern u32 obCurrentTime;
extern void obSetCurrentTime(u32 time);
extern u32 obGetCurrentTime();
extern f32 obGetCurrentTimeF();
extern void _some_camera_setup(float fovY, float aspect);
void obReadController(u16);
#endif