diff --git a/Makefile b/Makefile index 8ef904d..c8fc893 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ TARGET := ogrebattle64 COMPARE ?= 1 NON_MATCHING ?= 0 CHECK ?= 1 -VERBOSE ?= 0 +VERBOSE ?= 1 PRETTY_PRINTING ?= 1 # Fail early if baserom does not exist @@ -71,7 +71,7 @@ ENDLINE := \n' IINC := -I include -I $(BUILD_DIR)/include -I lib/libreultra/include/2.0I/ ASFLAGS := -Iinclude -EB -mtune=vr4300 -march=vr4300 -CPPFLAGS := $(IINC) -D_LANGUAGE_C -D_FINALROM -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -nostdinc -mgp32 -mfp32 -mips2 +CPPFLAGS := $(IINC) -D_LANGUAGE_C -D_FINALROM -DF3DEX_GBI -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -nostdinc -mgp32 -mfp32 -mips2 CFLAGS := -c -G0 -mgp32 -mfp32 -mips2 LDFLAGS := -T undefined_syms.txt -T undefined_syms_auto.txt -T undefined_funcs_auto.txt -T undefined_funcs.txt -T $(LD_SCRIPT) -Map $(LD_MAP) --no-check-sections diff --git a/compile_flags.txt b/compile_flags.txt index 2375763..a95f07f 100644 --- a/compile_flags.txt +++ b/compile_flags.txt @@ -2,5 +2,6 @@ -Ilib/libreultra/include/2.0I -D_LANGUAGE_C -D_FINALROM +-DF3DEX_GBI -DF3DEX_GBI_2 --target=mips-linux-gnu \ No newline at end of file diff --git a/include/common.h b/include/common.h index 39bee20..cd173da 100644 --- a/include/common.h +++ b/include/common.h @@ -495,4 +495,81 @@ extern u8 item_get_field_0x5(u16 arg0); extern u8 item_get_field_0x8(u16 arg0); extern u8 item_get_field_0x9(u16 arg0); + +void func_80179354(); /* extern */ +extern Gfx* PTR_DISPLAY_LIST; + +extern Gfx DISPLAY_LIST_80186310[]; +extern Gfx DISPLAY_LIST_80186330[]; +extern Gfx DISPLAY_LIST_80186320[]; +extern Gfx DISPLAY_LIST_80186358[]; +extern Gfx DP_FILL_RECT_639x479[]; +extern Gfx DL_DRAW_TEX_2560x1920[]; +extern Gfx DISPLAY_LIST_801869C8[]; +extern Gfx DISPLAY_LIST_80186BD0[]; +extern Gfx DISPLAY_LIST_80186D90[]; +extern Gfx DISPLAY_LIST_80186E70[]; +extern Gfx DISPLAY_LIST_800A9EF0[]; +extern Gfx DISPLAY_LIST_80186C60[]; +extern Gfx DISPLAY_LIST_80186D00[]; +extern Gfx DISPLAY_LIST_80186DD0[]; +extern Gfx DISPLAY_LIST_80186E20[]; +extern Gfx DISPLAY_LIST_800A96C8[]; +extern Gfx DISPLAY_LIST_800A9790[]; +extern Gfx DISPLAY_LIST_800A97C8[]; +extern Gfx DISPLAY_LIST_800A9810[]; +extern Gfx DISPLAY_LIST_8018FA70[]; +extern Gfx DISPLAY_LIST_8018FC80[]; +extern Gfx DISPLAY_LIST_8018FD10[]; +extern Gfx DISPLAY_LIST_8018F3E0[]; +extern Gfx DISPLAY_LIST_801EABF0[]; +extern Gfx DISPLAY_LIST_801EAC40[]; +extern Gfx DISPLAY_LIST_801EB1D0[]; +extern Gfx DISPLAY_LIST_801ED650[]; +extern Gfx DISPLAY_LIST_801FD0E8[]; +extern Gfx DISPLAY_LIST_801FCF70[]; +extern Gfx DISPLAY_LIST_801FCF98[]; +extern Gfx DISPLAY_LIST_801FD280[]; +extern Gfx DISPLAY_LIST_801FD328[]; +extern Gfx DISPLAY_LIST_801FD3D0[]; +extern Gfx DISPLAY_LIST_801FD3E8[]; +extern Gfx DISPLAY_LIST_801FD400[]; +extern Gfx DISPLAY_LIST_801FD450[]; +extern Gfx DISPLAY_LIST_801FD4A0[]; +extern Gfx DISPLAY_LIST_801FD4F0[]; +extern Gfx DISPLAY_LIST_801FD598[]; +extern Gfx DISPLAY_LIST_801FD5B0[]; +extern Gfx DISPLAY_LIST_801FD640[]; +extern Gfx DISPLAY_LIST_801FD658[]; +extern Gfx DISPLAY_LIST_801FD6F8[]; +extern Gfx DISPLAY_LIST_801FD740[]; +extern Gfx DISPLAY_LIST_801FD7D0[]; +extern Gfx DISPLAY_LIST_801FD7E8[]; +extern Gfx DISPLAY_LIST_801FD878[]; +extern Gfx DISPLAY_LIST_80213648[]; +extern Gfx DISPLAY_LIST_8021F0C0[]; +extern Gfx DISPLAY_LIST_8021F108[]; +extern Gfx DISPLAY_LIST_80219C48[]; +extern Gfx DISPLAY_LIST_80219CD0[]; +extern Gfx DISPLAY_LIST_8021ABC0[]; +extern Gfx DISPLAY_LIST_8021ABE8[]; +extern Gfx DISPLAY_LIST_80216BF0[]; +extern Gfx DISPLAY_LIST_80216C70[]; +extern Gfx DISPLAY_LIST_80216F18[]; +extern Gfx DISPLAY_LIST_8021C6E0[]; +extern Gfx DISPLAY_LIST_8021C230[]; +extern Gfx DISPLAY_LIST_8021C568[]; +extern Gfx DISPLAY_LIST_8021C698[]; +extern Gfx DISPLAY_LIST_8022A0B0[]; +extern Gfx DISPLAY_LIST_8022A0D0[]; +extern Gfx DISPLAY_LIST_80229FB8[]; +extern Gfx DISPLAY_LIST_8022A030[]; +extern Gfx DISPLAY_LIST_8022A068[]; +extern Gfx DISPLAY_LIST_801B8218[]; +extern Gfx DISPLAY_LIST_801B8268[]; +extern Gfx DISPLAY_LIST_801B82B0[]; +extern Gfx DISPLAY_LIST_801B8308[]; +extern Gfx DISPLAY_LIST_801B8358[]; +extern Gfx DISPLAY_LIST_801B8388[]; + #endif \ No newline at end of file diff --git a/include/include_asm.h b/include/include_asm.h index 9f438aa..1a9e94f 100644 --- a/include/include_asm.h +++ b/include/include_asm.h @@ -24,17 +24,20 @@ #define INCLUDE_ASM(TYPE, FOLDER, NAME, ARGS...) INCLUDE_ASM_INTERNAL(TYPE, "nonmatchings", FOLDER, NAME, ARGS) #define INCLUDE_ASM_SHIFT(TYPE, FOLDER, NAME, ARGS...) INCLUDE_ASM_INTERNAL(TYPE, "shiftable", FOLDER, NAME, ARGS) -#define INCLUDE_RODATA(FOLDER, NAME) \ - __asm__( \ - ".section .rodata\n" \ - "\t.include \""FOLDER"/"#NAME".s\"\n" \ - ".section .text" \ - ) +#define INCLUDE_RODATA(TYPE, FOLDER, NAME, ARGS...) \ +__asm__( \ + ".section .rodata\n" \ + "\t.include \"asm/nonmatchings/"FOLDER"/"#NAME".s\"\n" \ + ".section .text" \ +) #endif + __asm__(".include \"include/macro.inc\"\n"); + #else #define INCLUDE_ASM(TYPE, FOLDER, NAME, ARGS...) +#define INCLUDE_RODATA(TYPE, FOLDER, NAME, ARGS...) #endif diff --git a/splat.yaml b/splat.yaml index 3846047..ef2c879 100644 --- a/splat.yaml +++ b/splat.yaml @@ -9,6 +9,7 @@ options: header_encoding: ASCII platform: n64 asm_inc_header: "" + include_macro_inc: no # don't write macro.inc to rodata files # undefined_funcs_auto: True # undefined_funcs_auto_path: undefined_funcs_auto.txt # undefined_syms_auto: True @@ -448,46 +449,51 @@ segments: - [0x49510, asm] - [0x495E0, asm] - [0x49820, asm] - - [0x49A30, asm] + - [0x49A30, c] - [0x4D5C0, c] - - [0x4EF10, asm] + - [0x4EF10, c] - [0x514B0, c] - [0x5AC70, asm] - [0x5AFF0, asm] - [0x5C060, c] - [0x5C1D0, asm] - - [0x5C210, rodata] - - [0x5C510, rodata] - - [0x5CD70, rodata] - - [0x5CEF0, rodata] - - [0x5CF00, rodata] - - [0x5CF20, rodata] - - [0x5CF30, rodata] - - [0x5D560, rodata] - - [0x613B0, rodata] - - [0x647F0, rodata] - - [0x650A0, rodata] - - [0x650B0, rodata] - - [0x65220, rodata] - - [0x65230, rodata] - - [0x65260, rodata] - - [0x65280, rodata] - - [0x652A0, rodata] - - [0x65970, rodata] - - [0x659E0, rodata] - - [0x65B00, rodata] - - [0x65B80, rodata] - - [0x65C10, rodata] - - [0x65C50, rodata] - - [0x65CC0, rodata] - - [0x65D60, rodata] - - [0x65DD0, rodata] - - [0x66310, rodata] - - [0x663C0, rodata] - - [0x66570, rodata] - - [0x66B60, rodata] - - [0x66B80, rodata] + - [0x5C210, .data, "dl"] + - [0x5C220, .data, "dl"] + - [0x5C230, .data, "dl"] + - [0x5C280, .data, "dl"] + - [0x5C510, .data, "dl"] + - [0x5C8A0, data] + - [0x5CD70, data] + - [0x5CEF0, data] + - [0x5CF00, data] + - [0x5CF20, data] + - [0x5CF30, data] + - [0x5D560, data] + - [0x5DB10, data] + - [0x613B0, data] + - [0x647F0, data] + - [0x650A0, data] + - [0x650B0, data] + - [0x65220, data] + - [0x65230, data] + - [0x65260, data] + - [0x65280, data] + - [0x652A0, data] + - [0x65970, data] + - [0x659E0, data] + - [0x65B00, data] + - [0x65B80, data] + - [0x65C10, data] + - [0x65C50, data] + - [0x65CC0, data] + - [0x65D60, data] + - [0x65DD0, data] + - [0x66310, data] + - [0x663C0, data] + - [0x66570, data] + - [0x66B60, data] + - [0x66B80, data] - { start: 0x66E10, type: bss, vram: 0x80190F10 } @@ -808,11 +814,17 @@ segments: - [0x149A80, asm] - [0x14AB50, asm] - - [0x14DE90, rodata] - - [0x14E120, rodata] - - [0x14E150, rodata] - - [0x14E1A0, rodata] - - [0x14E370, rodata] + - [0x14DE90, data] + - [0x14E120, data] + - [0x14E150, data] + - [0x14E1A0, data] + - [0x14E370, data] + - [0x14E3E0, .data, "vert"] + - [0x14E460, .data, "vert"] + - [0x14E530, data] + - [0x14E5B0, data] + - [0x14E5E0, data] + - [0x14E720, rodata] - [0x14E790, rodata] - [0x14E920, rodata] @@ -867,14 +879,16 @@ segments: - [0x16ECA0, asm] - [0x16F990, asm] - - [0x16FB90, rodata] - - [0x16FDA0, rodata] - - [0x16FF40, rodata] - - [0x170100, rodata] - - [0x1701F0, rodata] - - [0x171C60, rodata] - - [0x171E00, rodata] - - [0x171E30, rodata] + - [0x16FB90, data] + - [0x16FDA0, data] + - [0x16FF40, .data, "data_16FF40"] + # - [0x16FF40, data] + - [0x170100, data] + - [0x1701E0, data] + - [0x1701F0, data] + - [0x171C60, data] + - [0x171E00, data] + - [0x171E30, data] # - { start: 0x171EA0, type: bss, vram: 0x80220E60 } diff --git a/src/49A30.c b/src/49A30.c new file mode 100644 index 0000000..261f2c5 --- /dev/null +++ b/src/49A30.c @@ -0,0 +1,41 @@ +#include + +#include "common.h" + +INCLUDE_ASM(const s32, "49A30", func_80173B30); + +INCLUDE_ASM(const s32, "49A30", func_80173B40); + +INCLUDE_ASM(const s32, "49A30", func_80173B50); + +INCLUDE_ASM(const s32, "49A30", func_80173B60); + +INCLUDE_ASM(const s32, "49A30", func_80173BA0); + +INCLUDE_ASM(const s32, "49A30", func_80173BE0); + +INCLUDE_ASM(const s32, "49A30", func_80173C54); + +INCLUDE_ASM(const s32, "49A30", func_80173D14); + +INCLUDE_ASM(const s32, "49A30", func_80173D4C); + +INCLUDE_ASM(const s32, "49A30", func_80173D84); + +INCLUDE_ASM(const s32, "49A30", func_80173DBC); + +INCLUDE_ASM(const s32, "49A30", func_80174138); + +INCLUDE_ASM(const s32, "49A30", func_80174250); + +INCLUDE_ASM(const s32, "49A30", func_801758C0); + +INCLUDE_ASM(const s32, "49A30", func_801768D4); + +INCLUDE_ASM(const s32, "49A30", func_80176948); + +INCLUDE_ASM(const s32, "49A30", func_80176C6C); + +INCLUDE_ASM(const s32, "49A30", func_80176F90); + +INCLUDE_ASM(const s32, "49A30", func_801772C0); diff --git a/src/4EF10.c b/src/4EF10.c new file mode 100644 index 0000000..33de89d --- /dev/null +++ b/src/4EF10.c @@ -0,0 +1,83 @@ +#include "common.h" + +void func_80179010(void) { } + +// INCLUDE_ASM(const s32, "4EF10", func_80179018); + +/* 4EF18 80179018 */ +void func_80179018(void) { + func_80179354(); +} + +// INCLUDE_ASM(const s32, "4EF10", func_80179034); + +extern void func_801793AC(); + +/* 4EF34 80179034 */ +void func_80179034(void) { + func_801793AC(); +} + +void func_80179050(void) { } + +void func_80179058(void) { } + +INCLUDE_ASM(const s32, "4EF10", func_80179060); + +INCLUDE_ASM(const s32, "4EF10", func_8017907C); + +INCLUDE_ASM(const s32, "4EF10", func_801792BC); + +// INCLUDE_ASM(const s32, "4EF10", func_801792E8); + +/* 4F1E8 801792E8 */ +void func_801792E8(void) { + gSPDisplayList(PTR_DISPLAY_LIST++, DISPLAY_LIST_8018FC80); + func_80179354(); +} + +INCLUDE_ASM(const s32, "4EF10", func_80179328); + +INCLUDE_ASM(const s32, "4EF10", func_80179354); + +INCLUDE_ASM(const s32, "4EF10", func_801793AC); + +INCLUDE_ASM(const s32, "4EF10", func_801793E4); + +INCLUDE_ASM(const s32, "4EF10", func_801794C8); + +INCLUDE_ASM(const s32, "4EF10", func_8017996C); + +INCLUDE_ASM(const s32, "4EF10", func_80179F04); + +INCLUDE_ASM(const s32, "4EF10", func_8017A704); + +INCLUDE_ASM(const s32, "4EF10", func_8017A714); + +INCLUDE_ASM(const s32, "4EF10", func_8017A720); + +INCLUDE_ASM(const s32, "4EF10", func_8017A8E8); + +INCLUDE_ASM(const s32, "4EF10", func_8017A94C); + +INCLUDE_ASM(const s32, "4EF10", func_8017A9B0); + +INCLUDE_ASM(const s32, "4EF10", func_8017AA18); + +INCLUDE_ASM(const s32, "4EF10", func_8017AAF4); + +INCLUDE_ASM(const s32, "4EF10", func_8017AC08); + +INCLUDE_ASM(const s32, "4EF10", func_8017AD3C); + +INCLUDE_ASM(const s32, "4EF10", func_8017ADE8); + +INCLUDE_ASM(const s32, "4EF10", func_8017AE20); + +INCLUDE_ASM(const s32, "4EF10", func_8017B098); + +INCLUDE_ASM(const s32, "4EF10", func_8017B500); + +INCLUDE_ASM(const s32, "4EF10", func_8017B550); + +INCLUDE_ASM(const s32, "4EF10", func_8017B58C); diff --git a/src/dl.c b/src/dl.c new file mode 100644 index 0000000..328fe2c --- /dev/null +++ b/src/dl.c @@ -0,0 +1,264 @@ +#include + +#include +#include + +#include "common.h" + +// 0xE7000000, 0x00000000 : gsDPPipeSync() +// 0xDF000000, 0x00000000 : gsSPEndDisplayList() +// 0xE0000000, 0x00000000 : gsSPNoOp() + +// const int w0 = 0x028001E0; +// const int w1 = 0x01FF0000; + +// const int c = _SHIFTR(w0, 24, 8); +// const int where = _SHIFTR(w0, 16, 8); +// const int vtx = _SHIFTR(w0, 0, 16) / 2; +// const int val = w1; + +// const u32 w0_ = _SHIFTL(G_MODIFYVTX,24,8)| \ +// _SHIFTL((where),16,8)|_SHIFTL((vtx)*2,0,16); +// const u32 w1_ = (unsigned int)(val); + +/* 5C210 80186310 */ +Gfx DISPLAY_LIST_80186310[] = { + // 0x028001E0, 0x01FF0000 + { 0x028001E0, 0x01FF0000 }, + // gsSPModifyVertex(240, 128, 0x1ff0000), + { 0x028001E0, 0x01FF0000 }, + // gsSPModifyVertex(240, 128, 0x1ff0000), +}; + + +/* 5C220 80186320 */ +Gfx DISPLAY_LIST_80186320[] = { + // 0x050003C0, 0x01FF0000 + { 0x050003C0, 0x01FF0000 }, + // { _SHIFTL(G_TRI1, 24, 8) | 0x000003C0, __gsSP1Triangle_w1f(25.5, 0, 0, 1) }, + // 0x050003C0, 0x01FF0000 + { 0x050003C0, 0x01FF0000 }, + // { _SHIFTL(G_TRI1, 24, 8) | 0x000003C0, __gsSP1Triangle_w1f(25.5, 0, 0, 1) }, +}; + +/* 5C230 80186330 */ +Gfx DISPLAY_LIST_80186330[] = { + gsDma1p(G_MOVEMEM, DISPLAY_LIST_80186310, 8, 8), + gsDPPipeSync(), + gsDPSetScissorFrac(0, 0, 0, 1276, 956), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +/* 5C258 80186358 */ +Gfx DISPLAY_LIST_80186358[] = { + gsDma1p(G_MOVEMEM, DISPLAY_LIST_80186320, 8, 8), + gsDPPipeSync(), + gsDPSetScissorFrac(0, 0, 0, 2560, 1920), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +/* 5C280 80186380 */ +Gfx DP_FILL_RECT_639x479[] = { + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 0, 639, 29), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 30, 639, 59), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 60, 639, 89), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 90, 639, 119), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 120, 639, 149), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 150, 639, 179), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 180, 639, 209), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 210, 639, 239), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 240, 639, 269), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 270, 639, 299), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 300, 639, 329), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 330, 639, 359), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 360, 639, 389), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 390, 639, 419), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 420, 639, 449), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsDPFillRectangle(0, 450, 639, 479), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +/* 5C510 80186610 */ +Gfx DL_DRAW_TEX_2560x1920[] = { + gsSPNoOp(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 0, 2560, 120, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 120, 2560, 240, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 240, 2560, 360, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 360, 2560, 480, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 480, 2560, 600, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 600, 2560, 720, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 720, 2560, 840, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 840, 2560, 960, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 960, 2560, 1080, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1080, 2560, 1200, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1200, 2560, 1320, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1320, 2560, 1440, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1440, 2560, 1560, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1560, 2560, 1680, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1680, 2560, 1800, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsDPPipeSync(), + gsSPTextureRectangle(0, 1800, 2560, 1920, 0, 0, 0, 0, 0), + gsDPPipeSync(), + gsSPNoOp(), + gsDPPipeSync(), + gsSPEndDisplayList(), +}; + +// /* 65970 8018FA70 */ +// const Gfx DISPLAY_LIST_8018FA70[] = { +// +// gsDPPipeSync(), +// +// gsDPPipeSync(), +// // 0xE3000A01, 0x00000000 +// gsSPSetOtherMode(G_SETOTHERMODE_H, 10, 1, 0x0), +// +// gsDPPipeSync(), +// // 0xD9000000, 0x00000000 +// { 0xD9000000, 0x00000000 }, +// // 0xD9FFFFFF, 0x00200404 +// { 0xD9FFFFFF, 0x00200404 }, +// // 0xE200001C, 0x0F0A4000 +// gsSPSetOtherMode(G_SETOTHERMODE_L, 0, 28, 0x0F0A4000), +// // 0xFC121824, 0xFF33FFFF +// gsDPSetCombine(0x121824,0xFF33FFFF), +// // 0xE3000C00, 0x00080000 +// gsSPSetOtherMode(G_SETOTHERMODE_H, 12, 0, 0x80000), +// // 0xE2001E01, 0x00000000 +// gsSPSetOtherMode(G_SETOTHERMODE_L, 30, 1, 0x0), +// // 0xDE000000, 0x80186330 +// gsSPDisplayList(0x80186330), +// // 0xD7000002, 0x80008000 +// gsSPTexture(0x8000, 0x8000, 0, 0, 2), +// +// gsDPPipeSync(), +// +// gsSPEndDisplayList(), +// }; \ No newline at end of file diff --git a/src/overlay_145210/vert.c b/src/overlay_145210/vert.c new file mode 100644 index 0000000..aca7349 --- /dev/null +++ b/src/overlay_145210/vert.c @@ -0,0 +1,47 @@ +#include + +#include "PR/gbi.h" +#include "common.h" + +/* 14E3E0 801FD200 */ +Vtx __MAYBE_VERTICES_801FD200[] = { + { -16, 29, 0, 0, 0, 0, 0, 0, 0, 255 }, + { -16, 13, 0, 0, 0, 1024, 0, 0, 0, 255 }, + { -16, 1, 0, 0, 0, 1792, 0, 0, 0, 0 }, + { -16, -3, 0, 0, 0, 1984, 0, 0, 0, 0 }, + { 16, -3, 0, 0, 1984, 1984, 0, 0, 0, 0 }, + { 16, 1, 0, 0, 1984, 1792, 0, 0, 0, 0 }, + { 16, 13, 0, 0, 1984, 1024, 0, 0, 0, 255 }, + { 16, 29, 0, 0, 1984, 0, 0, 0, 0, 255 }, +}; + +/* 14E460 801FD280 */ +Gfx DISPLAY_LIST_801FD280[] = { + { 0x01008010, /* __MAYBE_VERTICES_801FD200 */ 0x801FD200 }, + gsSP1Quadrangle(0, 1, 6, 7, 0), + gsSP1Quadrangle(1, 2, 5, 6, 0), + gsSP1Quadrangle(2, 3, 4, 5, 0), + gsSPEndDisplayList(), +}; + +/* 14E488 801FD2A8 */ +Vtx __MAYBE_VERTICES_801FD2A8[] = { + { -16, 29, 0, 0, 1984, 0, 0, 0, 0, 255 }, + { -16, 13, 0, 0, 1984, 1024, 0, 0, 0, 255 }, + { -16, 1, 0, 0, 1984, 1792, 0, 0, 0, 0 }, + { -16, -3, 0, 0, 1984, 1984, 0, 0, 0, 0 }, + { 16, -3, 0, 0, 0, 1984, 0, 0, 0, 0 }, + { 16, 1, 0, 0, 0, 1792, 0, 0, 0, 0 }, + { 16, 13, 0, 0, 0, 1024, 0, 0, 0, 255 }, + { 16, 29, 0, 0, 0, 0, 0, 0, 0, 255 }, +}; + +/* 14E508 801FD328 */ +Gfx DISPLAY_LIST_801FD328[] = { + { 0x01008010, /* __MAYBE_VERTICES_801FD2A8 */ 0x801FD2A8 }, + // gsSPVertex(__MAYBE_VERTICES_801FD2A8 + 0, 4, 0), + gsSP1Quadrangle(0, 1, 6, 7, 0), + gsSP1Quadrangle(1, 2, 5, 6, 0), + gsSP1Quadrangle(2, 3, 4, 5, 0), + gsSPEndDisplayList(), +}; \ No newline at end of file diff --git a/src/overlay_165FC0/data_16FF40.c b/src/overlay_165FC0/data_16FF40.c new file mode 100644 index 0000000..a63c520 --- /dev/null +++ b/src/overlay_165FC0/data_16FF40.c @@ -0,0 +1,60 @@ +#include + +#include "PR/gbi.h" +#include "common.h" + +extern u32 D_800E91D0; + +/* 16FF40 8021EF00 */ +void* D_overlay_165FC0_8021EF00_16FF40 = &D_800E91D0; + +/* 16FF44 8021EF04 */ +u8 D_overlay_165FC0_8021EF04_16FF44 = 0; + +/* 16FF45 8021EF05 */ +u8 D_overlay_165FC0_8021EF05_16FF45 = 0; + +/* 16FF46 8021EF06 */ +u16 D_overlay_165FC0_8021EF06_16FF46 = 0; + +/* 16FF48 8021EF08 */ +Vtx __MAYBE_VERTICES_8021EF08[] = { + { 0, 0, -6, 0, 1024, 1024, 96, 96, 84, 255 }, + { -4, 4, 6, 0, 1024, 1024, 144, 144, 132, 255 }, + { -4, -4, 6, 0, 1024, 1024, 32, 32, 24, 255 }, + { 4, -4, 6, 0, 1024, 1024, 16, 16, 10, 255 }, + { 4, 4, 6, 0, 1024, 1024, 208, 208, 192, 255 }, + { 0, 0, -9, 0, 1024, 1024, 0, 120, 216, 255 }, + { -5, 5, 6, 0, 1024, 1024, 0, 120, 216, 255 }, + { 5, 5, 6, 0, 1024, 1024, 0, 120, 216, 255 }, + { 0, 0, -9, 0, 1024, 1024, 120, 0, 216, 255 }, + { 5, 5, 6, 0, 1024, 1024, 120, 0, 216, 255 }, + { 5, -5, 6, 0, 1024, 1024, 120, 0, 216, 255 }, + { 0, 0, -9, 0, 1024, 1024, 0, 136, 216, 255 }, + { 5, -5, 6, 0, 1024, 1024, 0, 136, 216, 255 }, + { -5, -5, 6, 0, 1024, 1024, 0, 136, 216, 255 }, + { 0, 0, -9, 0, 1024, 1024, 136, 0, 216, 255 }, + { -5, -5, 6, 0, 1024, 1024, 136, 0, 216, 255 }, + { -5, 5, 6, 0, 1024, 1024, 136, 0, 216, 255 }, + { -5, 5, 6, 0, 1024, 1024, 0, 0, 127, 255 }, + { -5, -5, 6, 0, 1024, 1024, 0, 0, 127, 255 }, + { 5, -5, 6, 0, 1024, 1024, 0, 0, 127, 255 }, + { 5, 5, 6, 0, 1024, 1024, 0, 0, 127, 255 }, +}; + +/* 170098 8021F058 */ +Gfx DISPLAY_LIST_8021F058[] = { + gsDPPipeSync(), + gsSPDisplayList(DISPLAY_LIST_801869C8), + gsDPPipeSync(), + gsDPPipeSync(), + { 0xE3000A01, 00000 }, + gsDPPipeSync(), + gsSPTexture(0, 0, 0, 0, 0), + { 0xD9000000, 00000 }, + { 0xD9FFFFFF, 0x00200405 }, + { 0xE200001C, 0x00552078 }, + { 0xFCFFFFFF, 0xFFFE793C }, + gsDPPipeSync(), + gsSPEndDisplayList(), +}; \ No newline at end of file diff --git a/symbol_addrs.txt b/symbol_addrs.txt index 116b515..1bd14b0 100644 --- a/symbol_addrs.txt +++ b/symbol_addrs.txt @@ -1,3 +1,95 @@ + +__MAYBE_VERTICES_801FD200 = 0x801FD200; // rom:0x14E3E0 +__MAYBE_VERTICES_801FD2A8 = 0x801FD2A8; // rom:0x14E488 +__MAYBE_VERTICES_801FD350 = 0x801FD350; // rom:0x14E530 +__MAYBE_VERTICES_801FD558 = 0x801FD558; // rom:0x14E738 +__MAYBE_VERTICES_801FD600 = 0x801FD600; // rom:0x14E7E0 +__MAYBE_VERTICES_801FD790 = 0x801FD790; // rom:0x14E970 +__MAYBE_VERTICES_801FD838 = 0x801FD838; // rom:0x14EA18 +__MAYBE_VERTICES_8021EF08 = 0x8021EF08; // rom:0x16FF48 +__MAYBE_VERTICES_8021C588 = 0x8021C588; // rom:0x1B9C78 + +PTR_DISPLAY_LIST = 0x800E9BA0; + +DISPLAY_LIST_80186310 = 0x80186310; // rom:0x5C210 +DISPLAY_LIST_80186330 = 0x80186330; // rom:0x5C230 +DISPLAY_LIST_80186320 = 0x80186320; // rom:0x5C220 +DISPLAY_LIST_80186358 = 0x80186358; // rom:0x5C258 +DP_FILL_RECT_639x479 = 0x80186380; // rom:0x5C280 +DL_DRAW_TEX_2560x1920 = 0x80186610; // rom:0x5C510 +DISPLAY_LIST_801869C8 = 0x801869C8; // rom:0x5C8C8 +DISPLAY_LIST_80186BD0 = 0x80186BD0; // rom:0x5CAD0 +DISPLAY_LIST_80186D90 = 0x80186D90; // rom:0x5CC90 +DISPLAY_LIST_80186E70 = 0x80186E70; // rom:0x5CD70 + +DISPLAY_LIST_800A9EF0 = 0x800A9EF0; // rom:0x3A2F0 +DISPLAY_LIST_80186C60 = 0x80186C60; // rom:0x5CB60 +DISPLAY_LIST_80186D00 = 0x80186D00; // rom:0x5CC00 +DISPLAY_LIST_80186DD0 = 0x80186DD0; // rom:0x5CCD0 +DISPLAY_LIST_80186E20 = 0x80186E20; // rom:0x5CD20 + +DISPLAY_LIST_800A96C8 = 0x800A96C8; // rom:0x39AC8 +DISPLAY_LIST_800A9790 = 0x800A9790; // rom:0x39B90 +DISPLAY_LIST_800A97C8 = 0x800A97C8; // rom:0x39BC8 +DISPLAY_LIST_800A9810 = 0x800A9810; // rom:0x39C10 + +DISPLAY_LIST_8018FA70 = 0x8018FA70; // rom:0x65970 +DISPLAY_LIST_8018FC80 = 0x8018FC80; // rom:0x65B80 +DISPLAY_LIST_8018FD10 = 0x8018FD10; // rom:0x65C10 +DISPLAY_LIST_8018F3E0 = 0x8018F3E0; // rom:0x652E0 + +DISPLAY_LIST_801EABF0 = 0x801EABF0; // rom:0x13F330 +DISPLAY_LIST_801EAC40 = 0x801EAC40; // rom:0x13F380 +DISPLAY_LIST_801EB1D0 = 0x801EB1D0; // rom:0x13F910 +DISPLAY_LIST_801ED650 = 0x801ED650; // rom:0x141D90 +DISPLAY_LIST_801FD0E8 = 0x801FD0E8; // rom:0x14E2C8 +DISPLAY_LIST_801FCF70 = 0x801FCF70; // rom:0x14E150 +DISPLAY_LIST_801FCF98 = 0x801FCF98; // rom:0x14E178 +DISPLAY_LIST_801FD280 = 0x801FD280; // rom:0x14E460 +DISPLAY_LIST_801FD328 = 0x801FD328; // rom:0x14E508 +DISPLAY_LIST_801FD3D0 = 0x801FD3D0; // rom:0x14E5B0 +DISPLAY_LIST_801FD3E8 = 0x801FD3E8; // rom:0x14E5C8 +DISPLAY_LIST_801FD400 = 0x801FD400; // rom:0x14E5E0 +DISPLAY_LIST_801FD450 = 0x801FD450; // rom:0x14E630 +DISPLAY_LIST_801FD4A0 = 0x801FD4A0; // rom:0x14E680 +DISPLAY_LIST_801FD4F0 = 0x801FD4F0; // rom:0x14E6D0 +DISPLAY_LIST_801FD598 = 0x801FD598; // rom:0x14E778 +DISPLAY_LIST_801FD5B0 = 0x801FD5B0; // rom:0x14E790 +DISPLAY_LIST_801FD640 = 0x801FD640; // rom:0x14E820 +DISPLAY_LIST_801FD658 = 0x801FD658; // rom:0x14E838 +DISPLAY_LIST_801FD6F8 = 0x801FD6F8; // rom:0x14E8D8 +DISPLAY_LIST_801FD740 = 0x801FD740; // rom:0x14E920 +DISPLAY_LIST_801FD7D0 = 0x801FD7D0; // rom:0x14E9B0 +DISPLAY_LIST_801FD7E8 = 0x801FD7E8; // rom:0x14E9C8 +DISPLAY_LIST_801FD878 = 0x801FD878; // rom:0x14EA58 +DISPLAY_LIST_80213648 = 0x80213648; // rom:0x1647B8 +DISPLAY_LIST_8021F0C0 = 0x8021F0C0; // rom:0x170100 +DISPLAY_LIST_8021F108 = 0x8021F108; // rom:0x170148 +DISPLAY_LIST_80219C48 = 0x80219C48; // rom:0x17CB98 +DISPLAY_LIST_80219CD0 = 0x80219CD0; // rom:0x17CC20 +DISPLAY_LIST_8021ABC0 = 0x8021ABC0; // rom:0x185600 +DISPLAY_LIST_8021ABE8 = 0x8021ABE8; // rom:0x185628 +DISPLAY_LIST_80216BF0 = 0x80216BF0; // rom:0x1A4890 +DISPLAY_LIST_80216C70 = 0x80216C70; // rom:0x1A4910 +DISPLAY_LIST_80216F18 = 0x80216F18; // rom:0x1A4BB8 +DISPLAY_LIST_8021C6E0 = 0x8021C6E0; // rom:0x1B9DD0 +DISPLAY_LIST_8021C230 = 0x8021C230; // rom:0x1B9920 +DISPLAY_LIST_8021C568 = 0x8021C568; // rom:0x1B9C58 +DISPLAY_LIST_8021C698 = 0x8021C698; // rom:0x1B9D88 +DISPLAY_LIST_8022A0B0 = 0x8022A0B0; // rom:0x1C31C0 +DISPLAY_LIST_8022A0D0 = 0x8022A0D0; // rom:0x1C31E0 +DISPLAY_LIST_80229FB8 = 0x80229FB8; // rom:0x1C30C8 +DISPLAY_LIST_8022A030 = 0x8022A030; // rom:0x1C3140 +DISPLAY_LIST_8022A068 = 0x8022A068; // rom:0x1C3178 +DISPLAY_LIST_801B8218 = 0x801B8218; // rom:0x1EE718 +DISPLAY_LIST_801B8268 = 0x801B8268; // rom:0x1EE768 +DISPLAY_LIST_801B82B0 = 0x801B82B0; // rom:0x1EE7B0 +DISPLAY_LIST_801B8308 = 0x801B8308; // rom:0x1EE808 +DISPLAY_LIST_801B8358 = 0x801B8358; // rom:0x1EE858 +DISPLAY_LIST_801B8388 = 0x801B8388; // rom:0x1EE888 +DISPLAY_LIST_8021F058 = 0x8021F058; // rom:0x170098 + + __SOMETHING_FRAMEBUFFERS = 0x800A9EE0; // rom:0x3A2E0 size:0xC __something_display_list = 0x80089804; // rom:0x19C04 @@ -5,7 +97,7 @@ __SOMETHING_WITH_GFX = 0x800E9BE0; // size:0x18 __MAYBE_DISPLAY_LIST = 0x801B8430; // rom:0x1EE930 -FP_CLASS_GET_ITEM = 0x8018B494; // rom:0x61394 size:0x10 +FP_CLASS_GET_ITEM = 0x8018B494; // rom:0x61394 size:0x10 type:u32 __restore_zombie_hp_to_max = 0x80219EEC; // rom:0x1B75DC @@ -32,6 +124,8 @@ D_801977D8 = 0x801977D8; // size:0x1E D_80197710 = 0x80197710; // size:0x64 __CONTAINS_BATTALION_NAME = 0x80196A58; // size:0x94 +STR_FATAL_DANCE = 0x80187BC8; // rom:0x5DAC8 type:asciz size:0xc + DEFAULT_BATTALION_NAME = 0x80190EFC; // rom:0x66DFC type:asciz STR_COMMAND_MOBILE_WALL = 0x80212FF0; // rom:0x164160 type:asciz @@ -77,7 +171,7 @@ STR_ELEMENT_FlAME_BANE = 0x801876F0; // rom:0x5D5F0 type:asciz D_80187BD4 = 0x80187BD4; // rom:0x5DAD4 type:u32 -CLASS_DATA = 0x80187C14; // rom:0x5DB14 size:0x48 type:u32 +CLASS_DATA = 0x80187C14; // rom:0x5DB14 size:0x2E68 type:u32 class_get_field_0x2c = 0x8016DBD8; // rom:0x43AD8 class_get_ability_front = 0x8016DC2C; // rom:0x43B2C class_get_ability_front_hitcount = 0x8016DC80; // rom:0x43B80 @@ -102,13 +196,14 @@ class_get_ability_hitcount = 0x8016E338; // rom:0x44238 FORMATION_COMMAND_NAMES = 0x8021315C; // rom:0x1642CC type:char* -ABILITY_DATA = 0x8018AA7C; // rom:0x6097C size:0x10 +ABILITY_DATA = 0x8018AA7C; // rom:0x6097C size:0xA20 ability_get_name = 0x8016E440; ability_get_field_0x4 = 0x8016E458; // rom:0x44358 ability_get_element = 0x8016E470; FP_EQUIPMENT_GET_RESISTANCE = 0x801EF2B0; // rom:0xDBD10 FP_EQUIPMENT_GET_ALL_STATS = 0x801EF298; // rom:0xDBCF8 + EQUIPMENT_TYPE_NAMES = 0x802130A4; // rom:0x164214 type:char* EQUIPMENT_DATA = 0x8018C40C; // size:0x20 equipment_get_field_0x1b = 0x8016F580; // rom:0x45480