From 325e7bc0a8094fcc9d811f3ff43c20f3baf2b754 Mon Sep 17 00:00:00 2001 From: prj-2501 Date: Sun, 4 Oct 2026 18:02:59 +0530 Subject: [PATCH 1/2] .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index d7bf67b4..5604cf09 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ assets build build.ninja build-linux/ +build-linux-jp/ +build-linux-replay/ compile_commands.json .ninja_deps .ninja_log From e3c8548b7ac75435b84db9232fa3ca384f45661f Mon Sep 17 00:00:00 2001 From: prj-2501 Date: Sun, 4 Oct 2026 18:27:28 +0530 Subject: [PATCH 2/2] EU: funcs + .bss sym names --- config/symbols.eu.txt | 6 ++++-- config/undefined_syms.eu.main.txt | 6 ++++-- include/common.h | 6 ++++++ src/main/14A60.c | 9 +-------- src/main/165A0.c | 9 +++++---- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/config/symbols.eu.txt b/config/symbols.eu.txt index 1d89fbf2..aed14abc 100644 --- a/config/symbols.eu.txt +++ b/config/symbols.eu.txt @@ -11727,8 +11727,10 @@ D_8013E1C4 = 0x8016C918; temp3 = 0x8016C920; temp4 = 0x8016CD20; temp5 = 0x8016CF20; -D_80139F70 = 0x8016D010; -D_80139FA4 = 0x8016D060; +D_80139F20 = 0x8016D010; +D_80139F70 = 0x8016D060; +D_80139FA0 = 0x8016D090; +D_80139FB0 = 0x8016D0A0; D_8013B7B0 = 0x8016E8A0; D_8013B7D0 = 0x8016E8C0; D_8013B7D8 = 0x8016E8C8; diff --git a/config/undefined_syms.eu.main.txt b/config/undefined_syms.eu.main.txt index 72b29d9a..73494801 100644 --- a/config/undefined_syms.eu.main.txt +++ b/config/undefined_syms.eu.main.txt @@ -229,8 +229,10 @@ D_8013E1C4 = 0x8016C918; temp3 = 0x8016C920; temp4 = 0x8016CD20; temp5 = 0x8016CF20; -D_80139F70 = 0x8016D010; -D_80139FA4 = 0x8016D060; +D_80139F20 = 0x8016D010; +D_80139F70 = 0x8016D060; +D_80139FA0 = 0x8016D090; +D_80139FB0 = 0x8016D0A0; D_8013B7B0 = 0x8016E8A0; D_8013B7D0 = 0x8016E8C0; D_8013B7D8 = 0x8016E8C8; diff --git a/include/common.h b/include/common.h index e20b13da..4327093f 100644 --- a/include/common.h +++ b/include/common.h @@ -126,8 +126,14 @@ typedef s32 arg_u16; #define PAD_SELECTION_BUTTONS (PADRup | PADRdown) #endif +/* EU writes the tpage mode inline; US/JP query GetGraphType(). */ +#ifdef VERSION_EU +#define BG_DRAW_TPAGE(p, tpage) \ + (setlen(p, 1), ((u_long*)(p))[sizeof(OT_TYPE) / sizeof(u_long)] = 0xE1000000 | (tpage)) +#else #define BG_DRAW_TPAGE(p, tpage) \ (setlen(p, 1), ((u_long*)(p))[sizeof(OT_TYPE) / sizeof(u_long)] = 0xE1000000 | ((GetGraphType() == 1 || GetGraphType() == 2) ? (tpage) : ((tpage)&0x9FF))) +#endif union MainPaletteData { u8 raw[0x200]; diff --git a/src/main/14A60.c b/src/main/14A60.c index f142ceb7..681a7ceb 100644 --- a/src/main/14A60.c +++ b/src/main/14A60.c @@ -795,9 +795,6 @@ void func_80024260(void) INCLUDE_ASM("main/nonmatchings/14A60", func_80024334); -#ifdef VERSION_EU -INCLUDE_ASM("main/nonmatchings/14A60", func_80024920); -#else void func_80024920(struct QuadObj* quad) { POLY_F4* primitive; @@ -857,11 +854,7 @@ void func_80024920(struct QuadObj* quad) SP_PRIM_CURSOR += sizeof(POLY_FT4); SP_DRAW_MODE_CURSOR += sizeof(DR_TPAGE); } -#endif -#ifdef VERSION_EU -INCLUDE_ASM("main/nonmatchings/14A60", func_80024B9C); -#else void func_80024B9C(struct QuadObj* quad) { POLY_G4* primitive; @@ -926,7 +919,7 @@ void func_80024B9C(struct QuadObj* quad) SP_PRIM_CURSOR += sizeof(POLY_FT4); SP_DRAW_MODE_CURSOR += sizeof(DR_TPAGE); } -#endif + void func_80024E70(void) { struct PlayerObj* player = &g_Player; diff --git a/src/main/165A0.c b/src/main/165A0.c index f2bb89af..e7f19b59 100644 --- a/src/main/165A0.c +++ b/src/main/165A0.c @@ -176,10 +176,15 @@ void func_800257BC(struct PlayerObj* arg0); void func_80025CDC(void); +/* EU always uses the getTPage layout; US/JP pick it from GetGraphType(). */ +#ifdef VERSION_EU +#define BG_TPAGE(tp, abr, x, y) getTPage(tp, abr, x, y) +#else #define BG_TPAGE(tp, abr, x, y) \ ((GetGraphType() == 1 || GetGraphType() == 2) \ ? (((tp)&3) << 9) | (((abr)&3) << 7) | (((y)&0x300) >> 3) | (((x)&0x3FF) >> 6) \ : getTPage(tp, abr, x, y)) +#endif s16 D_800F2FDC[2] = { 0x0300, 0x0600 }; @@ -246,9 +251,6 @@ void (*D_800F30C8[])(struct MiscObj*) = { func_80023C0C, }; -#ifdef VERSION_EU -INCLUDE_ASM("main/nonmatchings/165A0", func_80025DA0); -#else void func_80025DA0(s32 texture_depth, s32 blend_mode) { u32 buffer, i, j; @@ -281,7 +283,6 @@ void func_80025DA0(s32 texture_depth, s32 blend_mode) } SP_BG_TILEMAP = D_80141BE8; } -#endif #undef BG_TPAGE void func_80026118(void)