From 14524744090fdaf13bee916d7f03cf7fa59aee21 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 17 Dec 2022 12:08:52 -0500 Subject: [PATCH] More cleanup, bss, undefined_syms (#892) * tons more BSS, undefined_syms, cleanup abound * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "741a0d030d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "741a0d030d" git-subrepo: version: "0.4.5" origin: "https://github.com/ingydotnet/git-subrepo" commit: "aa416e4" * one more * fix progress.py --- include/dead.h | 1 - progress.py | 2 +- src/77480.c | 2 +- src/7E9D0.c | 4 +- src/a5dd0_len_114e0.c | 8 +- src/battle/area_kzn2/actor/lava_bud.c | 1 + src/battle/area_kzn2/actor/lava_piranha.c | 1 + src/crash_screen.c | 1 + src/effects.c | 4 +- src/effects/fire_flower.c | 7 +- src/effects/gfx/partner_buff.c | 32 + src/effects/gfx/quizmo_stage.c | 102 +++ src/effects/gfx/spirit_card.c | 20 +- src/effects/partner_buff.c | 35 +- src/effects/quizmo_stage.c | 60 +- src/effects/stars_shimmer.c | 23 +- src/game_modes.c | 25 +- src/main_loop.c | 28 +- src/os/nusys/nusimgr.c | 4 +- src/world/action/sneaky_parasol.c | 2 + src/world/action/use_tweester.c | 4 +- src/world/area_dgb/dgb_01/data0.c | 4 +- src/world/area_dgb/dgb_01/data1.c | 4 +- src/world/area_dgb/dgb_01/data2.c | 4 +- src/world/area_dgb/dgb_01/data3.c | 4 +- src/world/area_dgb/dgb_01/data4.c | 4 +- src/world/area_dgb/dgb_01/data5.c | 4 +- src/world/area_dgb/dgb_01/data6.c | 4 +- src/world/area_dgb/dgb_01/data7.c | 4 +- src/world/area_dgb/dgb_15/C4F510.c | 2 +- src/world/area_hos/hos_05/A2AAC0.c | 19 +- src/world/area_hos/hos_05/A2EF00.c | 52 +- .../area_jan/jan_03/func_80240350_BDAB00.s | 51 -- src/world/area_jan/jan_04/B45150.c | 27 +- src/world/area_kmr/kmr_02/8B0070.c | 16 +- src/world/area_kmr/kmr_02/8B3A10.c | 4 + src/world/area_kmr/kmr_07/kmr_07_3_npc.c | 5 +- src/world/area_kmr/kmr_20/8EBE50.c | 13 +- src/world/area_kmr/kmr_20/8ED440.c | 5 +- src/world/area_mac/mac_01/mac_01_9_npc.c | 7 +- src/world/area_osr/osr_00/AACBB0.c | 4 + src/world/area_trd/trd_09/trd_09_3_npcs.c | 6 +- src/world/common/complete/Quizmo.inc.c | 14 +- .../util/PlaySpringReboundAnimation.inc.c | 5 +- tools/splat/.gitrepo | 4 +- tools/splat/segtypes/n64/gfx.py | 15 + ver/us/asm/bss.s | 5 +- ver/us/asm/bss3.s | 5 +- .../data/world/action/sneaky_parasol.data.s | 6 - .../asm/data/world/action/use_tweester.data.s | 6 - .../415D90/btl_state_update_player_menu.s | 4 +- ver/us/splat.yaml | 158 +++- ver/us/symbol_addrs.txt | 4 - ver/us/undefined_syms.txt | 766 ++++++++---------- 54 files changed, 880 insertions(+), 721 deletions(-) create mode 100644 src/effects/gfx/partner_buff.c create mode 100644 src/effects/gfx/quizmo_stage.c delete mode 100644 src/world/area_jan/jan_03/func_80240350_BDAB00.s delete mode 100644 ver/us/asm/data/world/action/sneaky_parasol.data.s delete mode 100644 ver/us/asm/data/world/action/use_tweester.data.s diff --git a/include/dead.h b/include/dead.h index d9a26403b4..6695fff95c 100644 --- a/include/dead.h +++ b/include/dead.h @@ -26,7 +26,6 @@ #define cos_deg dead_cos_deg #define sin_cos_deg dead_sin_cos_deg #define gPlayerStatus dead_gPlayerStatus -#define gPlayerActionState dead_gPlayerActionState #define is_point_within_region dead_is_point_within_region #define npc_raycast_down_sides dead_npc_raycast_down_sides #define basic_ai_check_player_dist dead_basic_ai_check_player_dist diff --git a/progress.py b/progress.py index ffa352b492..803a84ba6c 100755 --- a/progress.py +++ b/progress.py @@ -42,7 +42,7 @@ def get_func_info(): vrams = {} for line in nm_lines: - if " F " in line: + if " F " in line and "*ABS*" not in line: components = line.split() size = int(components[4], 16) name = components[5] diff --git a/src/77480.c b/src/77480.c index 2e91183cc5..f5a7ac5738 100644 --- a/src/77480.c +++ b/src/77480.c @@ -3,7 +3,7 @@ #include "world/actions.h" #include "sprite.h" -// TODO linker stuff + // TODO shiftability fix #define E20110_VRAM_DEF (void*)0x802B7000 #define E20EB0_VRAM_DEF (void*)0x802B7000 #define E21870_VRAM_DEF (void*)0x802B7000 diff --git a/src/7E9D0.c b/src/7E9D0.c index ff7236a1b3..7f1b9aa321 100644 --- a/src/7E9D0.c +++ b/src/7E9D0.c @@ -270,7 +270,7 @@ void phys_update_action_state(void) { if (dmaStart != NULL && dmaStart != D_8010C924) { D_8010C924 = dmaStart; - dma_copy(dmaStart, PlayerActionsTable[playerStatus->actionState].dmaEnd, (void* )0x802B6000); // TODO fix + dma_copy(dmaStart, PlayerActionsTable[playerStatus->actionState].dmaEnd, (void* )0x802B6000); // TODO shiftability fix } } PlayerActionsTable[playerStatus->actionState].update(); @@ -295,7 +295,7 @@ void phys_peach_update(void) { D_8010C924 = action->dmaStart; // TODO: This needs to be a defined linker define for full shiftability - dma_copy(D_8010C924, PlayerActionsTable[playerStatus->actionState].dmaEnd, (void* )0x802B6000); + dma_copy(D_8010C924, PlayerActionsTable[playerStatus->actionState].dmaEnd, (void* )0x802B6000); // TODO shiftability fix } if (PlayerActionsTable[playerStatus->actionState].flag) { diff --git a/src/a5dd0_len_114e0.c b/src/a5dd0_len_114e0.c index d97c41412d..51f2780497 100644 --- a/src/a5dd0_len_114e0.c +++ b/src/a5dd0_len_114e0.c @@ -10,10 +10,10 @@ #ifdef SHIFT #define AREA_SPECIFIC_ENTITY_VRAM entity_default_VRAM #else -#define MODEL_TEXTURE_BASE_ADDRESS 0x8028E000 // TODO shift -#define BATTLE_ENTITY_HEAP_BASE 0x80267FF0 // TODO shift +#define MODEL_TEXTURE_BASE_ADDRESS 0x8028E000 // TODO shiftability fix +#define BATTLE_ENTITY_HEAP_BASE 0x80267FF0 // TODO shiftability fix #define AREA_SPECIFIC_ENTITY_VRAM 0x802BAE00 -#define BATTLE_ENTITY_HEAP_BOTTOM 0x80250000 // TODO shift +#define BATTLE_ENTITY_HEAP_BOTTOM 0x80250000 // TODO shiftability fix #endif typedef struct Fog { @@ -2864,7 +2864,7 @@ GameMode* set_game_mode_slot(s32 i, GameMode* mode) { ASSERT(i < ARRAY_COUNT(gMainGameState)); - gameMode->flags = 1 | 2; + gameMode->flags = 2 | 1; gameMode->init = mode->init; gameMode->step = mode->step; gameMode->render = mode->render; diff --git a/src/battle/area_kzn2/actor/lava_bud.c b/src/battle/area_kzn2/actor/lava_bud.c index da3d6cd706..7ced171fc4 100644 --- a/src/battle/area_kzn2/actor/lava_bud.c +++ b/src/battle/area_kzn2/actor/lava_bud.c @@ -35,6 +35,7 @@ enum { VINE_2 = 2, }; +// TODO shiftability fix enum { VINE_1_BASE = 0x80231000, VINE_2_BASE = 0x8022E000, diff --git a/src/battle/area_kzn2/actor/lava_piranha.c b/src/battle/area_kzn2/actor/lava_piranha.c index 4462b0e310..02708dddec 100644 --- a/src/battle/area_kzn2/actor/lava_piranha.c +++ b/src/battle/area_kzn2/actor/lava_piranha.c @@ -278,6 +278,7 @@ enum { VINE_4 = 4, }; +// TODO shiftability fix enum { VINE_0_BASE = 0x80234000, VINE_1_BASE = 0x80231000, diff --git a/src/crash_screen.c b/src/crash_screen.c index 866d4f0a81..4e83054e74 100644 --- a/src/crash_screen.c +++ b/src/crash_screen.c @@ -24,6 +24,7 @@ u8 gCrashScreencharToGlyph[128] = { 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, }; +// TODO extract? u32 gCrashScreenFont[] = { 0x70871C30, 0x8988A250, 0x88808290, 0x88831C90, 0x888402F8, 0x88882210, 0x71CF9C10, 0xF9CF9C70, 0x8228A288, 0xF200A288, 0x0BC11C78, 0x0A222208, 0x8A222288, 0x71C21C70, 0x23C738F8, 0x5228A480, 0x8A282280, 0x8BC822F0, diff --git a/src/effects.c b/src/effects.c index df8ed0b8ec..e2f26ae184 100644 --- a/src/effects.c +++ b/src/effects.c @@ -105,7 +105,7 @@ EffectTableEntry gEffectTable[] = { /* 0x4B */ FX_ENTRY(balloon, effect_gfx_balloon), /* 0x4C */ FX_ENTRY(floating_rock, effect_gfx_floating_rock), /* 0x4D */ FX_ENTRY(chomp_drop, effect_gfx_chomp_drop), - /* 0x4E */ FX_ENTRY(quizmo_stage, _398BC0), + /* 0x4E */ FX_ENTRY(quizmo_stage, effect_gfx_quizmo_stage), /* 0x4F */ FX_ENTRY(radiating_energy_orb, effect_gfx_radiating_energy_orb), /* 0x50 */ FX_ENTRY(quizmo_answer, effect_gfx_quizmo_answer), /* 0x51 */ FX_ENTRY(motion_blur_flame, _3A33D0), @@ -154,7 +154,7 @@ EffectTableEntry gEffectTable[] = { /* 0x7C */ FX_ENTRY(lil_oink, effect_gfx_lil_oink), /* 0x7D */ FX_ENTRY(something_rotating, effect_gfx_spirit_card), /* 0x7E */ FX_ENTRY(breaking_junk, effect_gfx_breaking_junk), - /* 0x7F */ FX_ENTRY(partner_buff, _404F40), + /* 0x7F */ FX_ENTRY(partner_buff, effect_gfx_partner_buff), /* 0x80 */ FX_ENTRY(quizmo_assistant, effect_gfx_quizmo_assistant), /* 0x81 */ FX_ENTRY(ice_pillar, effect_gfx_ice_pillar), /* 0x82 */ FX_ENTRY(sun, effect_gfx_sun), diff --git a/src/effects/fire_flower.c b/src/effects/fire_flower.c index dd4d95e0ec..13d1374204 100644 --- a/src/effects/fire_flower.c +++ b/src/effects/fire_flower.c @@ -7,9 +7,8 @@ extern Gfx D_09000DE0_381180[]; extern Gfx D_09000EB8_381258[]; extern Gfx D_09000ED8_381278[]; extern Gfx D_09000EF8_381298[]; -extern s8 D_E007EC2F[]; -s32 D_E007EC30[] = { 0x323C4650, 0x5A646964 }; +s8 D_E007EC30[] = { 50, 60, 70, 80, 90, 100, 105, 100 }; void fire_flower_appendGfx(void* effect); void fire_flower_init(EffectInstance* effect); @@ -105,11 +104,11 @@ void fire_flower_update(EffectInstance* effect) { part->unk_04++; break; case 1: - if (unk_40X >= 8) { + if (unk_40X >= ARRAY_COUNT(D_E007EC30)) { part->unk_40.x = 0; part->unk_04++; } else { - part->unk_30 = D_E007EC2F[unk_40X] * 0.01; + part->unk_30 = D_E007EC30[unk_40X - 1] * 0.01; part->unk_34 = 0; part->unk_38 = 0; } diff --git a/src/effects/gfx/partner_buff.c b/src/effects/gfx/partner_buff.c new file mode 100644 index 0000000000..e667ca45a3 --- /dev/null +++ b/src/effects/gfx/partner_buff.c @@ -0,0 +1,32 @@ +#include "common.h" + +#include "effects/gfx/world/cloud.png.inc.c" +#include "effects/gfx/world/cloud.pal.inc.c" + +char D_09000220_405160[0x1E0] = { 0x0 }; + +#include "effects/gfx/world/waterblock.png.inc.c" +#include "effects/gfx/world/waterblock.pal.inc.c" + +char D_09000620_405560[0x1E0] = { 0x0 }; + +#include "effects/gfx/world/yellow_carpet.png.inc.c" +#include "effects/gfx/world/yellow_carpet.pal.inc.c" + +char D_09000A20_405960[0x1E0] = { 0x0 }; + +#include "effects/gfx/world/numbers.png.inc.c" +#include "effects/gfx/world/number1.png.inc.c" +#include "effects/gfx/world/number2.png.inc.c" +#include "effects/gfx/world/number3.png.inc.c" +#include "effects/gfx/world/number4.png.inc.c" +#include "effects/gfx/world/numbers.pal.inc.c" + +char D_09001620_406560[0x1E0] = { 0x0 }; + +#include "effects/gfx/D_09001800_406740.gfx.inc.c" +#include "effects/gfx/D_090019A0_4068E0.gfx.inc.c" +#include "effects/gfx/D_09001A18_406958.gfx.inc.c" +#include "effects/gfx/D_09001A90_4069D0.gfx.inc.c" +#include "effects/gfx/D_09001B08_406A48.gfx.inc.c" +#include "effects/gfx/D_09001B80_406AC0.gfx.inc.c" diff --git a/src/effects/gfx/quizmo_stage.c b/src/effects/gfx/quizmo_stage.c new file mode 100644 index 0000000000..9c3f5c6d86 --- /dev/null +++ b/src/effects/gfx/quizmo_stage.c @@ -0,0 +1,102 @@ +#include "PR/gbi.h" + +Lights1 D_09000000_398BC0 = gdSPDefLights1(255, 255, 255, 255, 255, 255, 255, 65, 109); + +#include "effects/gfx/D_09000018_398BD8.png.inc.c" +#include "effects/gfx/D_09000218_398DD8.gfx.inc.c" +#include "effects/gfx/D_09000288_398E48.png.inc.c" +#include "effects/gfx/D_09001288_399E48.gfx.inc.c" +#include "effects/gfx/D_090012F8_399EB8.png.inc.c" +#include "effects/gfx/D_090012F8_399EB8.pal.inc.c" +#include "effects/gfx/D_09001518_39A0D8.gfx.inc.c" +#include "effects/gfx/D_090015B8_39A178.png.inc.c" +#include "effects/gfx/D_090017B8_39A378.gfx.inc.c" +#include "effects/gfx/D_09001828_39A3E8.png.inc.c" +#include "effects/gfx/D_09001828_39A3E8.pal.inc.c" +#include "effects/gfx/D_09001C48_39A808.gfx.inc.c" +#include "effects/gfx/D_09001CE8_39A8A8.png.inc.c" +#include "effects/gfx/D_09002CE8_39B8A8.gfx.inc.c" +#include "effects/gfx/D_09002D58_39B918.png.inc.c" +#include "effects/gfx/D_09002D58_39B918.pal.inc.c" +#include "effects/gfx/D_09003578_39C138.gfx.inc.c" +#include "effects/gfx/D_09003618_39C1D8.png.inc.c" +#include "effects/gfx/D_09003E18_39C9D8.gfx.inc.c" +#include "effects/gfx/D_09003E88_39CA48.png.inc.c" +#include "effects/gfx/D_09003E88_39CA48.pal.inc.c" +#include "effects/gfx/D_090040A8_39CC68.gfx.inc.c" + +// what's this? +char D_09004148_39CD08[] = { + 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xFF, 0x83, 0x0, 0x0, 0x0, 0x41, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x7D, 0x0, 0x0, 0x0, 0x41, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x7D, 0x0, 0x0, 0xFF, 0xAB, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0xFF, 0xCE, 0x0, 0x0, 0x0, 0xA, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 +}; + +#include "effects/gfx/D_09004248_39CE08.png.inc.c" +#include "effects/gfx/D_09004248_39CE08.pal.inc.c" +#include "effects/gfx/D_09004A68_39D628.gfx.inc.c" +#include "effects/gfx/D_09004B08_39D6C8.png.inc.c" +#include "effects/gfx/D_09005308_39DEC8.gfx.inc.c" +#include "effects/gfx/D_09005378_39DF38.png.inc.c" +#include "effects/gfx/D_09006378_39EF38.gfx.inc.c" +#include "effects/gfx/D_090063E8_39EFA8.vtx.inc.c" +#include "effects/gfx/D_09006428_39EFE8.vtx.inc.c" +#include "effects/gfx/D_09006468_39F028.vtx.inc.c" +#include "effects/gfx/D_090064A8_39F068.vtx.inc.c" +#include "effects/gfx/D_090064E8_39F0A8.vtx.inc.c" +#include "effects/gfx/D_09006568_39F128.vtx.inc.c" +#include "effects/gfx/D_090065E8_39F1A8.vtx.inc.c" +#include "effects/gfx/D_09006628_39F1E8.vtx.inc.c" +#include "effects/gfx/D_090067E8_39F3A8.vtx.inc.c" +#include "effects/gfx/D_09006828_39F3E8.vtx.inc.c" +#include "effects/gfx/D_09006868_39F428.vtx.inc.c" +#include "effects/gfx/D_090068A8_39F468.vtx.inc.c" +#include "effects/gfx/D_090068E8_39F4A8.vtx.inc.c" +#include "effects/gfx/D_09006928_39F4E8.vtx.inc.c" +#include "effects/gfx/D_09006968_39F528.vtx.inc.c" +#include "effects/gfx/D_090069A8_39F568.vtx.inc.c" + +#include "effects/gfx/D_090069E8_39F5A8.gfx.inc.c" +#include "effects/gfx/D_09006A48_39F608.gfx.inc.c" +#include "effects/gfx/D_09006AA8_39F668.gfx.inc.c" +#include "effects/gfx/D_09006B08_39F6C8.gfx.inc.c" +#include "effects/gfx/D_09006B68_39F728.gfx.inc.c" +#include "effects/gfx/D_09006BA8_39F768.gfx.inc.c" +#include "effects/gfx/D_09006C08_39F7C8.gfx.inc.c" +#include "effects/gfx/D_09006C68_39F828.gfx.inc.c" +#include "effects/gfx/D_09006C98_39F858.gfx.inc.c" +#include "effects/gfx/D_09006CF0_39F8B0.gfx.inc.c" +#include "effects/gfx/D_09006D48_39F908.gfx.inc.c" +#include "effects/gfx/D_09006D78_39F938.gfx.inc.c" +#include "effects/gfx/D_09006DA0_39F960.gfx.inc.c" +#include "effects/gfx/D_09006E28_39F9E8.gfx.inc.c" +#include "effects/gfx/D_09006E88_39FA48.gfx.inc.c" +#include "effects/gfx/D_09006EB8_39FA78.gfx.inc.c" +#include "effects/gfx/D_09006F20_39FAE0.gfx.inc.c" +#include "effects/gfx/D_09006F48_39FB08.gfx.inc.c" +#include "effects/gfx/D_09006FB0_39FB70.gfx.inc.c" +#include "effects/gfx/D_09006FD8_39FB98.gfx.inc.c" +#include "effects/gfx/D_09007030_39FBF0.gfx.inc.c" +#include "effects/gfx/D_09007090_39FC50.gfx.inc.c" +#include "effects/gfx/D_090070E8_39FCA8.gfx.inc.c" +#include "effects/gfx/D_09007148_39FD08.gfx.inc.c" +#include "effects/gfx/D_09007188_39FD48.gfx.inc.c" +#include "effects/gfx/D_090071D0_39FD90.gfx.inc.c" +#include "effects/gfx/D_09007200_39FDC0.gfx.inc.c" + +#include "effects/gfx/D_09007230_39FDF0.gfx.inc.c" +#include "effects/gfx/D_09007298_39FE58.vtx.inc.c" +#include "effects/gfx/D_090072D8_39FE98.gfx.inc.c" diff --git a/src/effects/gfx/spirit_card.c b/src/effects/gfx/spirit_card.c index ed632ba614..81759b991f 100644 --- a/src/effects/gfx/spirit_card.c +++ b/src/effects/gfx/spirit_card.c @@ -66,25 +66,7 @@ Lights1 D_09003F80_3FE430 = gdSPDefLights1(200, 200, 200, 255, 255, 255, 231, 93 #include "effects/gfx/D_09004178_3FE628.gfx.inc.c" #include "effects/gfx/D_090041F0_3FE6A0.gfx.inc.c" #include "effects/gfx/D_09004268_3FE718.gfx.inc.c" - -//#include "effects/gfx/D_090042E0_3FE790.gfx.inc.c" -Gfx D_090042E0_3FE790[] = { - gsDPPipeSync(), - gsSPTexture(0xFFFF, 0xFFFF, 0x0, G_TX_RENDERTILE, G_ON), - gsDPSetCycleType(G_CYC_2CYCLE), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPSetTextureFilter(G_TF_BILERP), - gsDPSetTextureConvert(G_TC_FILT), - gsDPSetDepthSource(G_ZS_PIXEL), - gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), - gsSPSetLights1(D_09003F80_3FE430), - gsSPClearGeometryMode(G_CULL_BOTH), - gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH), - gsSPEndDisplayList(), -}; - +#include "effects/gfx/D_090042E0_3FE790.gfx.inc.c" #include "effects/gfx/D_09004360_3FE810.gfx.inc.c" #include "effects/gfx/D_090043D8_3FE888.vtx.inc.c" #include "effects/gfx/D_09004418_3FE8C8.gfx.inc.c" diff --git a/src/effects/partner_buff.c b/src/effects/partner_buff.c index b815e60dfa..bfa7357f25 100644 --- a/src/effects/partner_buff.c +++ b/src/effects/partner_buff.c @@ -18,15 +18,18 @@ enum { BUFF_STATE_FADE_IN = 40 }; -extern Gfx D_09001800[]; -extern Gfx D_090019A0[]; -extern Gfx D_09001A18[]; -extern Gfx D_09001A90[]; -extern Gfx D_09001B08[]; -extern Gfx D_09001B80[]; +extern Gfx D_09001800_406740[]; +extern Gfx D_090019A0_4068E0[]; +extern Gfx D_09001A18_406958[]; +extern Gfx D_09001A90_4069D0[]; +extern Gfx D_09001B08_406A48[]; +extern Gfx D_09001B80_406AC0[]; -Gfx* D_E011AC20[] = { D_09001800 }; -Gfx* D_E011AC24[] = { D_090019A0, D_09001A18, D_09001A90, D_09001B08, D_09001B80, NULL, NULL, NULL, NULL, NULL }; +Gfx* D_E011AC20[] = { D_09001800_406740 }; +Gfx* D_E011AC24[] = { + D_090019A0_4068E0, D_09001A18_406958, D_09001A90_4069D0, D_09001B08_406A48, D_09001B80_406AC0, + NULL, NULL, NULL, NULL, NULL +}; s8 D_E011AC4C[] = { 15, 15, 15, 15, 15, 35, 75, 100, 100, 100, 100, 0 }; s8 D_E011AC58[] = { 100, 100, 100, 100, 100, 90, 10, 10, 10, 10, 10, 0 }; @@ -186,7 +189,7 @@ void func_E011A3BC(s16 alpha) { gDPSetCombineMode(gMasterGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); } else { gDPSetRenderMode(gMasterGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2); - gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0, PRIMITIVE, 0, + gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0); gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, alpha); } @@ -217,13 +220,13 @@ void func_E011A700(EffectInstance* effect) { Gfx* dlist; f32 x, y; s32 i; - + if (data->unk_02 != 0) { gDPPipeSync(gMasterGfxPos++); gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data)); gSPDisplayList(gMasterGfxPos++, D_E011AC20[0]); - + numShown = 0; for (i = 0; i < ARRAY_COUNT(data->unk_0C); i++) { BuffData* buffData = &data->unk_0C[i]; @@ -239,7 +242,7 @@ void func_E011A700(EffectInstance* effect) { gSPTexture(gMasterGfxPos++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gDPSetTextureLUT(gMasterGfxPos++, G_TT_NONE); - + numShown = 0; for (i = 0; i < ARRAY_COUNT(data->unk_0C); i++) { BuffData* buffData = &data->unk_0C[i]; @@ -275,7 +278,7 @@ void func_E011A700(EffectInstance* effect) { func_E011A48C(x, y, 0, 1024.0f / scale); } } - + dlist = D_E011AC24[turnsDisplay]; if (dlist != NULL) { gSPDisplayList(gMasterGfxPos++, dlist); @@ -291,9 +294,9 @@ void func_E011A700(EffectInstance* effect) { } gDPSetScissor(gMasterGfxPos++, G_SC_NON_INTERLACE, - camera->viewportStartX, - camera->viewportStartY, - camera->viewportStartX + camera->viewportW, + camera->viewportStartX, + camera->viewportStartY, + camera->viewportStartX + camera->viewportW, camera->viewportStartY + camera->viewportH ); gDPPipeSync(gMasterGfxPos++); diff --git a/src/effects/quizmo_stage.c b/src/effects/quizmo_stage.c index 0e5ffa6c2b..ed545e7f72 100644 --- a/src/effects/quizmo_stage.c +++ b/src/effects/quizmo_stage.c @@ -1,19 +1,19 @@ #include "common.h" #include "effects_internal.h" -extern Gfx D_09000218[]; -extern Gfx D_09001518[]; -extern Mtx D_09004148[]; -extern Gfx D_09006D48[]; -extern Gfx D_09006DA0[]; -extern Gfx D_09006E28[]; -extern Gfx D_09006F20[]; -extern Gfx D_09006FB0[]; -extern Gfx D_09006FD8[]; -extern Gfx D_09007030[]; -extern Gfx D_09007090[]; -extern Gfx D_090070E8[]; -extern Gfx D_09007230[]; +extern Gfx D_09000218_398DD8[]; +extern Gfx D_09001518_39A0D8[]; +extern Mtx D_09004148_39CD08[]; +extern Gfx D_09006D48_39F908[]; +extern Gfx D_09006DA0_39F960[]; +extern Gfx D_09006E28_39F9E8[]; +extern Gfx D_09006F20_39FAE0[]; +extern Gfx D_09006FB0_39FB70[]; +extern Gfx D_09006FD8_39FB98[]; +extern Gfx D_09007030_39FBF0[]; +extern Gfx D_09007090_39FC50[]; +extern Gfx D_090070E8_39FCA8[]; +extern Gfx D_09007230_39FDF0[]; void quizmo_stage_init(EffectInstance* effect); void quizmo_stage_update(EffectInstance* effect); @@ -122,51 +122,51 @@ void quizmo_stage_appendGfx(void* effect) { gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetPrimColor(gMasterGfxPos++, 0, 0, microphoneRaiseAmt, microphoneRaiseAmt, microphoneRaiseAmt, 255); gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED); - gSPDisplayList(gMasterGfxPos++, D_09007230); + gSPDisplayList(gMasterGfxPos++, D_09007230_39FDF0); if (data->unk_3C != 255) { - gSPMatrix(gMasterGfxPos++, &D_09004148[2], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gMasterGfxPos++, &D_09004148_39CD08[2], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); shim_guRotateF(sp18, (data->rearWallRaiseAmt * 180) / 255 - 180, 1.0f, 0.0f, 0.0f); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_09006E28); - gSPDisplayList(gMasterGfxPos++, D_09001518); + gSPDisplayList(gMasterGfxPos++, D_09006E28_39F9E8); + gSPDisplayList(gMasterGfxPos++, D_09001518_39A0D8); gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, data->lightScrollAmt, 0, data->lightScrollAmt + 252, 60); - gSPDisplayList(gMasterGfxPos++, D_09006DA0); + gSPDisplayList(gMasterGfxPos++, D_09006DA0_39F960); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); - gSPMatrix(gMasterGfxPos++, &D_09004148[0], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gMasterGfxPos++, &D_09004148_39CD08[0], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); shim_guRotateF(sp18, 90 - (data->leftWallRaiseAmt * 90) / 255, 0.0f, 0.0f, 1.0f); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_09006FB0); + gSPDisplayList(gMasterGfxPos++, D_09006FB0_39FB70); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); - gSPMatrix(gMasterGfxPos++, &D_09004148[1], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gMasterGfxPos++, &D_09004148_39CD08[1], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); shim_guRotateF(sp18, (data->rightWallRaiseAmt * 90) / 255 - 90, 0.0f, 0.0f, 1.0f); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_09006F20); + gSPDisplayList(gMasterGfxPos++, D_09006F20_39FAE0); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_090070E8); - gSPDisplayList(gMasterGfxPos++, D_09007030); - gSPDisplayList(gMasterGfxPos++, D_09001518); + gSPDisplayList(gMasterGfxPos++, D_090070E8_39FCA8); + gSPDisplayList(gMasterGfxPos++, D_09007030_39FBF0); + gSPDisplayList(gMasterGfxPos++, D_09001518_39A0D8); gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, data->lightScrollAmt, 0, data->lightScrollAmt + 252, 60); - gSPDisplayList(gMasterGfxPos++, D_09006FD8); - gSPMatrix(gMasterGfxPos++, &D_09004148[3], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPDisplayList(gMasterGfxPos++, D_09006FD8_39FB98); + gSPMatrix(gMasterGfxPos++, &D_09004148_39CD08[3], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); shim_guRotateF(sp18, 90 - (data->podiumRaiseAmt * 90) / 255, 1.0f, 0.0f, 0.0f); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_09006D48); + gSPDisplayList(gMasterGfxPos++, D_09006D48_39F908); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, D_09000218); - gSPDisplayList(gMasterGfxPos++, D_09007090); + gSPDisplayList(gMasterGfxPos++, D_09000218_398DD8); + gSPDisplayList(gMasterGfxPos++, D_09007090_39FC50); } gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); diff --git a/src/effects/stars_shimmer.c b/src/effects/stars_shimmer.c index 7cca927cfe..cd8ad205f9 100644 --- a/src/effects/stars_shimmer.c +++ b/src/effects/stars_shimmer.c @@ -6,18 +6,19 @@ void stars_shimmer_update(EffectInstance* effect); void stars_shimmer_render(EffectInstance* effect); void stars_shimmer_appendGfx(void* effect); -extern Gfx D_09000F20[]; -extern Gfx D_09001210[]; -extern Gfx D_09001228[]; -extern Gfx D_09001240[]; -extern Gfx D_09001258[]; -extern Gfx D_09001270[]; -extern Gfx D_090011C8[]; -extern Gfx D_090011E0[]; -extern Gfx D_090011F8[]; +extern Gfx D_09000F20_338EE0[]; +extern Gfx D_090011C8_339188[]; +extern Gfx D_090011E0_3391A0[]; +extern Gfx D_090011F8_3391B8[]; +extern Gfx D_09001210_3391D0[]; +extern Gfx D_09001228_3391E8[]; +extern Gfx D_09001240_339200[]; +extern Gfx D_09001258_339218[]; +extern Gfx D_09001270_339230[]; Gfx* D_E0044DB0[] = { - D_09001210, D_09001228, D_09001240, D_09001258, D_09001270, D_090011C8, D_090011E0, D_090011F8 + D_09001210_3391D0, D_09001228_3391E8, D_09001240_339200, D_09001258_339218, + D_09001270_339230, D_090011C8_339188, D_090011E0_3391A0, D_090011F8_3391B8 }; u8 D_E0044DD0[] = { @@ -313,7 +314,7 @@ void stars_shimmer_appendGfx(void* effect) { gDPPipeSync(gMasterGfxPos++); gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data)); - gSPDisplayList(gMasterGfxPos++, D_09000F20); + gSPDisplayList(gMasterGfxPos++, D_09000F20_338EE0); temp_s4 = (data->lifeTime - 1) * 3; shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z); diff --git a/src/game_modes.c b/src/game_modes.c index 1a98867ec6..00fff887aa 100644 --- a/src/game_modes.c +++ b/src/game_modes.c @@ -25,6 +25,8 @@ s32 D_80077420[] = { 0x000000D4, 0x000000D5, 0x000000D6, 0x000000D7, 0x000000D8, 0x000000D9, 0x000000DA, }; +// These StateFunc[] should really be GameMode but they seem to sometimes only take up 0x14 bytes of data rather than 0x18 like they should if they were really a struct. + StateFunc gameModeBlueprints[] = { NULL, state_init_startup, state_step_startup, NULL, state_drawUI_startup }; StateFunc D_800776FC[] = { NULL, state_init_logos, state_step_logos, NULL, state_drawUI_logos }; @@ -67,9 +69,26 @@ StateFunc D_80077828[] = { NULL, state_init_intro, state_step_intro, NULL, state StateFunc D_8007783C[] = { NULL, state_init_demo, state_step_demo, NULL, state_drawUI_demo }; -StateFunc* gameModeMap[] = { - gameModeBlueprints, D_800776FC, D_80077710, D_80077724, D_80077774, D_80077738, D_8007774C, D_80077760, D_80077788, - D_8007779C, D_800777B0, D_800777C4, D_800777D8, D_800777EC, D_80077800, D_80077814, D_80077828, D_8007783C, NULL, +GameMode* gameModeMap[] = { + (GameMode*) gameModeBlueprints, + (GameMode*) D_800776FC, + (GameMode*) D_80077710, + (GameMode*) D_80077724, + (GameMode*) D_80077774, + (GameMode*) D_80077738, + (GameMode*) D_8007774C, + (GameMode*) D_80077760, + (GameMode*) D_80077788, + (GameMode*) D_8007779C, + (GameMode*) D_800777B0, + (GameMode*) D_800777C4, + (GameMode*) D_800777D8, + (GameMode*) D_800777EC, + (GameMode*) D_80077800, + (GameMode*) D_80077814, + (GameMode*) D_80077828, + (GameMode*) D_8007783C, + NULL, NULL, }; diff --git a/src/main_loop.c b/src/main_loop.c index d0cfd5730f..0ad9d32737 100644 --- a/src/main_loop.c +++ b/src/main_loop.c @@ -8,18 +8,30 @@ s8 gGameStepDelayAmount = 1; s8 gGameStepDelayCount = 5; -GameStatus gGameStatus = {0}; +GameStatus gGameStatus = { + .currentButtons = {0}, + .pressedButtons = {0}, + .heldButtons = {0}, + .prevButtons = {0}, + .stickX = {0}, + .stickY = {0}, + .unk_48 = {0}, + .unk_50 = {0}, +}; + GameStatus* gGameStatusPtr = &gGameStatus; s16 D_800741A0 = 0; s16 D_800741A2 = 0; s32 D_800741A4 = 0; -s32 D_800741A8[] = { - 0x00010000, 0x00000000, 0x00000001, 0x00000000, - 0x00000000, 0x00010000, 0x00000000, 0x00000001, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, +Mtx D_800741A8 = { + .m = { + { 0x00010000, 0x00000000, 0x00000001, 0x00000000 }, + { 0x00000000, 0x00010000, 0x00000000, 0x00000001 }, + { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, + { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, + } }; +s32 D_800741E8[2] = {0, 0}; // padding? u16 gMatrixListPos = 0; u16 D_800741F2 = 0; s32 gCurrentDisplayContextIndex = 0; @@ -180,7 +192,7 @@ void gfx_draw_frame(void) { return; } - gSPMatrix(gMasterGfxPos++, D_800741A8, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(gMasterGfxPos++, &D_800741A8, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); spr_render_init(); diff --git a/src/os/nusys/nusimgr.c b/src/os/nusys/nusimgr.c index 5822743c85..d0b3c140b1 100644 --- a/src/os/nusys/nusimgr.c +++ b/src/os/nusys/nusimgr.c @@ -9,6 +9,8 @@ extern s32 D_800A08C0; static void nuSiMgrThread(void* arg); +extern u64 siMgrStack[NU_SI_STACK_SIZE/sizeof(u64)]; + u8 nuSiMgrInit(void) { u8 pattern; OSContStatus status[NU_CONT_MAXCONTROLLERS]; @@ -24,7 +26,7 @@ u8 nuSiMgrInit(void) { } } - osCreateThread(&siMgrThread, NU_SI_THREAD_ID, nuSiMgrThread, NULL, &D_800A08C0, NU_SI_THREAD_PRI); + osCreateThread(&siMgrThread, NU_SI_THREAD_ID, nuSiMgrThread, NULL, (siMgrStack + NU_SI_STACK_SIZE/sizeof(u64)), NU_SI_THREAD_PRI); osStartThread(&siMgrThread); return pattern; } diff --git a/src/world/action/sneaky_parasol.c b/src/world/action/sneaky_parasol.c index 6b305e12cd..5743f9be06 100644 --- a/src/world/action/sneaky_parasol.c +++ b/src/world/action/sneaky_parasol.c @@ -37,6 +37,8 @@ enum { BSS TransformationData ParasolTransformation; +TransformationData* D_802B6D80_E2B430 = &ParasolTransformation; + void parasol_update_spin(void); Npc* parasol_get_npc(void) { diff --git a/src/world/action/use_tweester.c b/src/world/action/use_tweester.c index 4718d0fb71..9214b28c4e 100644 --- a/src/world/action/use_tweester.c +++ b/src/world/action/use_tweester.c @@ -2,7 +2,9 @@ #include "../partners.h" #include "npc.h" -extern struct TweesterPhysics* PlayerTweesterPhysics; +BSS TweesterPhysics D_802B6370; + +TweesterPhysics* PlayerTweesterPhysics = &D_802B6370; enum { SUBSTATE_LAUNCH = 0, diff --git a/src/world/area_dgb/dgb_01/data0.c b/src/world/area_dgb/dgb_01/data0.c index 215e4e05df..c07f5f2936 100644 --- a/src/world/area_dgb/dgb_01/data0.c +++ b/src/world/area_dgb/dgb_01/data0.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img0_png[]; + Gfx D_80247F70_C057F0[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x80246F70, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img0_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data1.c b/src/world/area_dgb/dgb_01/data1.c index 48eefb354e..7e1f1c60f0 100644 --- a/src/world/area_dgb/dgb_01/data1.c +++ b/src/world/area_dgb/dgb_01/data1.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img1_png[]; + Gfx D_80248FF0_C06870[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x80247FF0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img1_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data2.c b/src/world/area_dgb/dgb_01/data2.c index c231d0acd8..dca44de6b9 100644 --- a/src/world/area_dgb/dgb_01/data2.c +++ b/src/world/area_dgb/dgb_01/data2.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img2_png[]; + Gfx D_80249870_C070F0[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x80249070, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img2_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data3.c b/src/world/area_dgb/dgb_01/data3.c index 4127d62c29..49a30514fc 100644 --- a/src/world/area_dgb/dgb_01/data3.c +++ b/src/world/area_dgb/dgb_01/data3.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img3_png[]; + Gfx D_80249CF0_C07570[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x802498F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img3_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data4.c b/src/world/area_dgb/dgb_01/data4.c index 573ec0e62e..414658f4d8 100644 --- a/src/world/area_dgb/dgb_01/data4.c +++ b/src/world/area_dgb/dgb_01/data4.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img4_png[]; + Gfx D_8024A170_C079F0[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x80249D70, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img4_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data5.c b/src/world/area_dgb/dgb_01/data5.c index a0cca03a6d..80ce5bfa73 100644 --- a/src/world/area_dgb/dgb_01/data5.c +++ b/src/world/area_dgb/dgb_01/data5.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img5_png[]; + Gfx D_8024A5F0_C07E70[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x8024A1F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img5_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data6.c b/src/world/area_dgb/dgb_01/data6.c index bb2f3b092a..d983a3f9eb 100644 --- a/src/world/area_dgb/dgb_01/data6.c +++ b/src/world/area_dgb/dgb_01/data6.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img6_png[]; + Gfx D_8024AE70_C086F0[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x8024A670, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img6_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_01/data7.c b/src/world/area_dgb/dgb_01/data7.c index c7aa87dfd7..6547b701a1 100644 --- a/src/world/area_dgb/dgb_01/data7.c +++ b/src/world/area_dgb/dgb_01/data7.c @@ -1,12 +1,14 @@ #include "dgb_01.h" +extern char world_area_dgb_dgb_01_img7_png[]; + Gfx D_8024B6F0_C08F70[] = { gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), gsDPSetTextureDetail(G_TD_CLAMP), gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(0x8024AEF0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadTextureBlock(world_area_dgb_dgb_01_img7_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsSPEndDisplayList(), diff --git a/src/world/area_dgb/dgb_15/C4F510.c b/src/world/area_dgb/dgb_15/C4F510.c index 440ecfccf6..9ec0d574b9 100644 --- a/src/world/area_dgb/dgb_15/C4F510.c +++ b/src/world/area_dgb/dgb_15/C4F510.c @@ -191,7 +191,7 @@ EvtScript N(80241FBC) = { }; s32 N(unk_missing_8024202C)[] = { - 0x00000000, 0x00240022, 0x00000000, 0x00000000, (s32) N(80241FBC), 0x80077F70, 0x00000000, 0x8007809C, + 0x00000000, 0x00240022, 0x00000000, 0x00000000, (s32) N(80241FBC), (s32) EnemyNpcHit, 0x00000000, (s32) EnemyNpcDefeat, 0x00000000, 0x00000000, 0x000D0000, }; diff --git a/src/world/area_hos/hos_05/A2AAC0.c b/src/world/area_hos/hos_05/A2AAC0.c index 66b91e571c..84d18460cd 100644 --- a/src/world/area_hos/hos_05/A2AAC0.c +++ b/src/world/area_hos/hos_05/A2AAC0.c @@ -95,7 +95,6 @@ extern s32 D_8024ACB8_A34EF8; extern f32 D_8024AEC4_A35104; extern f32 D_8024AEC8_A35108; -// BSS? BSS f32 D_8024F2C8; BSS f32 D_8024F2CC; BSS f32 D_8024F2D0; // unused? @@ -109,9 +108,25 @@ BSS f32 D_8024F2EC; BSS f32 D_8024F2F0; BSS f32 D_8024F2F4; BSS f32 D_8024F2F8; -BSS char D_8024F2FC[0x78]; // unused? +BSS s32 D_8024F2FC; +BSS s32 D_8024F300; +BSS s32 D_8024F304; +BSS s32 D_8024F308; +BSS s32 D_8024F30C; +BSS char B_8024F310[0x8]; +BSS char D_8024F318[0x20]; +BSS char D_8024F338[0x20]; +BSS char D_8024F358[0x1C]; BSS f32 D_8024F374; BSS f32 D_8024F378; +BSS char D_8024F37C[0x4]; +BSS s32 D_8024F380; +BSS char D_8024F384[0x74]; +BSS char D_8024F3F8[0x50]; +BSS s32 D_8024F448[10]; +BSS s32 D_8024F470_hos_bss[10]; +BSS s32 D_8024F498[4 * 5]; +BSS s32 D_8024F4E8[34]; ApiStatus func_80240880_A2AAC0(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/world/area_hos/hos_05/A2EF00.c b/src/world/area_hos/hos_05/A2EF00.c index eabec219da..13e4b94208 100644 --- a/src/world/area_hos/hos_05/A2EF00.c +++ b/src/world/area_hos/hos_05/A2EF00.c @@ -13,42 +13,42 @@ extern u8 D_802D9D73; #define NAMESPACE hos_05 +BSS s32 D_8024F570[4]; +BSS u8 N(oldPrimR), N(oldPrimG), N(oldPrimB); +BSS u8 N(oldEnvR), N(oldEnvG), N(oldEnvB); +BSS s32 N(newPrimR), N(newPrimG), N(newPrimB); +BSS s32 N(newEnvR), N(newEnvG), N(newEnvB); +BSS s32 N(duration), N(time); + ApiStatus func_802452C4_A2F504(Evt* script, s32 isInitialCall) { Bytecode* args; - static char N(bss_padding)[0x200]; // TODO remove / relocate this - static u8 oldPrimR, oldPrimG, oldPrimB; - static u8 oldEnvR, oldEnvG, oldEnvB; - static s32 newPrimR, newPrimG, newPrimB; - static s32 newEnvR, newEnvG, newEnvB; - static s32 duration, time; - args = script->ptrReadPos; if (isInitialCall) { - get_model_env_color_parameters(&oldPrimR, &oldPrimG, &oldPrimB, &oldEnvR, &oldEnvG, &oldEnvB); - newPrimR = evt_get_variable(script, *args++); - newPrimG = evt_get_variable(script, *args++); - newPrimB = evt_get_variable(script, *args++); - newEnvR = evt_get_variable(script, *args++); - newEnvG = evt_get_variable(script, *args++); - newEnvB = evt_get_variable(script, *args++); - duration = evt_get_variable(script, *args++); - time = 0; + get_model_env_color_parameters(&N(oldPrimR), &N(oldPrimG), &N(oldPrimB), &N(oldEnvR), &N(oldEnvG), &N(oldEnvB)); + N(newPrimR) = evt_get_variable(script, *args++); + N(newPrimG) = evt_get_variable(script, *args++); + N(newPrimB) = evt_get_variable(script, *args++); + N(newEnvR) = evt_get_variable(script, *args++); + N(newEnvG) = evt_get_variable(script, *args++); + N(newEnvB) = evt_get_variable(script, *args++); + N(duration) = evt_get_variable(script, *args++); + N(time) = 0; } - if (duration > 0) { - time++; + if (N(duration) > 0) { + N(time)++; set_model_env_color_parameters( - (oldPrimR + ((newPrimR - oldPrimR) * time) / duration), - (oldPrimG + ((newPrimG - oldPrimG) * time) / duration), - (oldPrimB + ((newPrimB - oldPrimB) * time) / duration), - (oldEnvR + ( (newEnvR - oldEnvR) * time) / duration), - (oldEnvG + ( (newEnvG - oldEnvG) * time) / duration), - (oldEnvB + ( (newEnvB - oldEnvB) * time) / duration)); - if (time >= duration) { + (N(oldPrimR) + ((N(newPrimR) - N(oldPrimR)) * N(time)) / N(duration)), + (N(oldPrimG) + ((N(newPrimG) - N(oldPrimG)) * N(time)) / N(duration)), + (N(oldPrimB) + ((N(newPrimB) - N(oldPrimB)) * N(time)) / N(duration)), + (N(oldEnvR) + ( (N(newEnvR) - N(oldEnvR)) * N(time)) / N(duration)), + (N(oldEnvG) + ( (N(newEnvG) - N(oldEnvG)) * N(time)) / N(duration)), + (N(oldEnvB) + ( (N(newEnvB) - N(oldEnvB)) * N(time)) / N(duration))); + if (N(time) >= N(duration)) { return ApiStatus_DONE2; } } else { - set_model_env_color_parameters(newPrimR, newPrimG, newPrimB, newEnvR, newEnvG, newEnvB); + set_model_env_color_parameters(N(newPrimR), N(newPrimG), N(newPrimB), N(newEnvR), N(newEnvG), N(newEnvB)); return ApiStatus_DONE2; } return ApiStatus_BLOCK; diff --git a/src/world/area_jan/jan_03/func_80240350_BDAB00.s b/src/world/area_jan/jan_03/func_80240350_BDAB00.s deleted file mode 100644 index 65b508f73c..0000000000 --- a/src/world/area_jan/jan_03/func_80240350_BDAB00.s +++ /dev/null @@ -1,51 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_802429E8_BDD198 -.ascii "party_resa\0\0omo_03\0\0\0\0\0\0" - -.section .text - -glabel obk_09_LoadPartyImage -/* BDAB00 80240350 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* BDAB04 80240354 3C048024 */ lui $a0, %hi(D_802429E8_BDD198) -/* BDAB08 80240358 248429E8 */ addiu $a0, $a0, %lo(D_802429E8_BDD198) -/* BDAB0C 8024035C 27A50010 */ addiu $a1, $sp, 0x10 -/* BDAB10 80240360 AFBF0020 */ sw $ra, 0x20($sp) -/* BDAB14 80240364 AFB1001C */ sw $s1, 0x1c($sp) -/* BDAB18 80240368 0C016B3A */ jal load_asset_by_name -/* BDAB1C 8024036C AFB00018 */ sw $s0, 0x18($sp) -/* BDAB20 80240370 0040802D */ daddu $s0, $v0, $zero -/* BDAB24 80240374 0200202D */ daddu $a0, $s0, $zero -/* BDAB28 80240378 3C118024 */ lui $s1, %hi(D_80242A00) -/* BDAB2C 8024037C 26312A00 */ addiu $s1, $s1, %lo(D_80242A00) -/* BDAB30 80240380 0C01BB7C */ jal decode_yay0 -/* BDAB34 80240384 0220282D */ daddu $a1, $s1, $zero -/* BDAB38 80240388 0C00AB1E */ jal general_heap_free -/* BDAB3C 8024038C 0200202D */ daddu $a0, $s0, $zero -/* BDAB40 80240390 3C048024 */ lui $a0, %hi(D_80246990) -/* BDAB44 80240394 24846990 */ addiu $a0, $a0, %lo(D_80246990) -/* BDAB48 80240398 3C028024 */ lui $v0, %hi(D_80242C00) -/* BDAB4C 8024039C 24422C00 */ addiu $v0, $v0, %lo(D_80242C00) -/* BDAB50 802403A0 AC820000 */ sw $v0, ($a0) -/* BDAB54 802403A4 24020096 */ addiu $v0, $zero, 0x96 -/* BDAB58 802403A8 A4820008 */ sh $v0, 8($a0) -/* BDAB5C 802403AC 24020069 */ addiu $v0, $zero, 0x69 -/* BDAB60 802403B0 A482000A */ sh $v0, 0xa($a0) -/* BDAB64 802403B4 24020002 */ addiu $v0, $zero, 2 -/* BDAB68 802403B8 AC82000C */ sw $v0, 0xc($a0) -/* BDAB6C 802403BC 24020001 */ addiu $v0, $zero, 1 -/* BDAB70 802403C0 AC910004 */ sw $s1, 4($a0) -/* BDAB74 802403C4 0C0496CB */ jal set_message_images -/* BDAB78 802403C8 AC820010 */ sw $v0, 0x10($a0) -/* BDAB7C 802403CC 8FBF0020 */ lw $ra, 0x20($sp) -/* BDAB80 802403D0 8FB1001C */ lw $s1, 0x1c($sp) -/* BDAB84 802403D4 8FB00018 */ lw $s0, 0x18($sp) -/* BDAB88 802403D8 24020002 */ addiu $v0, $zero, 2 -/* BDAB8C 802403DC 03E00008 */ jr $ra -/* BDAB90 802403E0 27BD0028 */ addiu $sp, $sp, 0x28 -/* BDAB94 802403E4 00000000 */ nop -/* BDAB98 802403E8 00000000 */ nop -/* BDAB9C 802403EC 00000000 */ nop diff --git a/src/world/area_jan/jan_04/B45150.c b/src/world/area_jan/jan_04/B45150.c index b3014554aa..cf787a0e5c 100644 --- a/src/world/area_jan/jan_04/B45150.c +++ b/src/world/area_jan/jan_04/B45150.c @@ -2,24 +2,27 @@ #define PARTY_IMAGE "party_opuku" // #include "world/common/todo/LoadPartyImage.inc.c" -API_CALLABLE(N(LoadPartyImage)) { - static PAL_BIN palette[256]; - static IMG_BIN raster[0x3DA0]; // similar to LoadPartyImage include but with 0x10 bytes added for padding (look at D_8024A290 - I think this goes in between the two) - static MessageImageData image; +BSS PAL_BIN N(palette)[256]; +BSS IMG_BIN N(raster)[0x3D90]; // similar to LoadPartyImage include but with D_8024A290 in the middle randomly +BSS Evt* D_8024A290; +BSS char D_8024A294[0xC]; // padding? +BSS MessageImageData N(image); + +API_CALLABLE(N(LoadPartyImage)) { u32 decompressedSize; void* compressed = load_asset_by_name(PARTY_IMAGE, &decompressedSize); - decode_yay0(compressed, &palette); + decode_yay0(compressed, &N(palette)); general_heap_free(compressed); - image.raster = raster; - image.palette = palette; - image.width = 150; - image.height = 105; - image.format = G_IM_FMT_CI; - image.bitDepth = G_IM_SIZ_8b; - set_message_images(&image); + N(image).raster = N(raster); + N(image).palette = N(palette); + N(image).width = 150; + N(image).height = 105; + N(image).format = G_IM_FMT_CI; + N(image).bitDepth = G_IM_SIZ_8b; + set_message_images(&N(image)); return ApiStatus_DONE2; } diff --git a/src/world/area_kmr/kmr_02/8B0070.c b/src/world/area_kmr/kmr_02/8B0070.c index e145e02ace..0182525f18 100644 --- a/src/world/area_kmr/kmr_02/8B0070.c +++ b/src/world/area_kmr/kmr_02/8B0070.c @@ -2,6 +2,13 @@ #include "effects.h" #include "model.h" +BSS u8 D_80257F20; // r +BSS u8 D_80257F21; // g +BSS u8 D_80257F22; // b +BSS u8 D_80257F23; // a +BSS u8 oldPrimR, oldPrimG, oldPrimB; +BSS u8 oldEnvR, oldEnvG, oldEnvB; + static char* N(exit_str_0) = "kmr_05"; static char* N(exit_str_1) = "kmr_00"; static char* N(exit_str_2) = "kmr_09"; @@ -180,11 +187,6 @@ ApiStatus func_8024280C_8B287C(Evt* script, s32 isInitialCall) { #include "world/common/todo/SyncStatusMenu.inc.c" #ifdef NON_EQUIVALENT -extern u8 D_80257F20; -extern u8 D_80257F21; -extern u8 D_80257F22; -extern u8 D_80257F23; - // control flow + data migration ApiStatus func_8024295C_8B29CC(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -228,10 +230,6 @@ ApiStatus func_80242BA8_8B2C18(Evt* script, s32 isInitialCall) { ApiStatus func_80242BC0_8B2C30(Evt* script, s32 isInitialCall) { Bytecode* args; - static s32 padding; - static u8 oldPrimR, oldPrimG, oldPrimB; - static u8 oldEnvR, oldEnvG, oldEnvB; - s32 newEnvR, newEnvB, newEnvG; s32 newPrimR, newPrimG, newPrimB; s32 duration; diff --git a/src/world/area_kmr/kmr_02/8B3A10.c b/src/world/area_kmr/kmr_02/8B3A10.c index 19cda03d69..e046f7c183 100644 --- a/src/world/area_kmr/kmr_02/8B3A10.c +++ b/src/world/area_kmr/kmr_02/8B3A10.c @@ -1,5 +1,9 @@ #include "kmr_02.h" +BSS char D_80258140[0x200]; +BSS char D_80258340[0x3D90]; +BSS char D_8025C0D0; + INCLUDE_ASM(s32, "world/area_kmr/kmr_02/8B3A10", kmr_02_LoadPartyImage); // #define PARTY_IMAGE "party_kurio" diff --git a/src/world/area_kmr/kmr_07/kmr_07_3_npc.c b/src/world/area_kmr/kmr_07/kmr_07_3_npc.c index bf6aea32f2..03b29178e1 100644 --- a/src/world/area_kmr/kmr_07/kmr_07_3_npc.c +++ b/src/world/area_kmr/kmr_07/kmr_07_3_npc.c @@ -1,8 +1,9 @@ #include "kmr_07.h" +#include "animation_script.h" #include "world/common/enemy/complete/GoombaBros_Stationary.inc.c" -extern Addr EntityModel_Spring_ReboundAnim; +extern AnimScript Entity_SimpleSpring_AnimLaunch; API_CALLABLE(N(PlaySpringReboundAnimation)) { Entity* entity = get_entity_by_index(evt_get_variable(NULL, MV_SpringEntityIndex)); @@ -11,7 +12,7 @@ API_CALLABLE(N(PlaySpringReboundAnimation)) { return ApiStatus_BLOCK; } - play_model_animation(entity->virtualModelIndex, (s16*) EntityModel_Spring_ReboundAnim); + play_model_animation(entity->virtualModelIndex, Entity_SimpleSpring_AnimLaunch); return ApiStatus_DONE2; } diff --git a/src/world/area_kmr/kmr_20/8EBE50.c b/src/world/area_kmr/kmr_20/8EBE50.c index 27d8f7f7ee..e1cb37a3b6 100644 --- a/src/world/area_kmr/kmr_20/8EBE50.c +++ b/src/world/area_kmr/kmr_20/8EBE50.c @@ -1,6 +1,17 @@ #include "kmr_20.h" -extern s32 D_8025B2A8; +BSS s32 D_80253060[6]; +BSS char D_80253078[0x300]; +BSS s32 D_80253378[3]; +BSS s32 D_80253384[2]; +BSS s32 D_8025338C; +BSS char D_80253390[0x3D88]; +BSS char D_80257118[0x208]; +BSS char D_80257320[0x3D88]; +BSS char D_8025B0A8[0x200]; +BSS s32 D_8025B2A8; +BSS s32 D_8025B2AC; +BSS s32 D_8025B2B0; #include "world/common/entity/Pipe.inc.c" diff --git a/src/world/area_kmr/kmr_20/8ED440.c b/src/world/area_kmr/kmr_20/8ED440.c index 182787c77e..ed95482771 100644 --- a/src/world/area_kmr/kmr_20/8ED440.c +++ b/src/world/area_kmr/kmr_20/8ED440.c @@ -1,10 +1,11 @@ #include "kmr_20.h" +#include "animation_script.h" #include "world/common/todo/StashVars.inc.c" #include "world/common/todo/GetItemName.inc.c" -extern Addr EntityModel_Spring_ReboundAnim; +extern AnimScript Entity_SimpleSpring_AnimLaunch; ApiStatus func_80241738_8ED558(Evt* script, s32 isInitialCall) { Entity* entity = get_entity_by_index(0); @@ -13,6 +14,6 @@ ApiStatus func_80241738_8ED558(Evt* script, s32 isInitialCall) { return ApiStatus_BLOCK; } - play_model_animation(entity->virtualModelIndex, (s16*)EntityModel_Spring_ReboundAnim); + play_model_animation(entity->virtualModelIndex, Entity_SimpleSpring_AnimLaunch); return ApiStatus_DONE2; } diff --git a/src/world/area_mac/mac_01/mac_01_9_npc.c b/src/world/area_mac/mac_01/mac_01_9_npc.c index 7d3ee1f030..2d7733af4c 100644 --- a/src/world/area_mac/mac_01/mac_01_9_npc.c +++ b/src/world/area_mac/mac_01/mac_01_9_npc.c @@ -8,9 +8,6 @@ extern EvtScript N(EVS_ToadHouse_SetDialogue); extern EvtScript N(EVS_ToadHouse_ReturnFromRest); extern EvtScript N(EVS_MerlonBargeOut); -extern PopupMenu D_80262C38; -extern s32 D_80262F68; - #include "world/common/npc/Toad_Wander.inc.c" #include "world/common/npc/Toad_Patrol.inc.c" #include "world/common/npc/Toad_Stationary.inc.c" @@ -1310,6 +1307,10 @@ StaticNpc N(NpcData_Ninji) = { .tattle = MSG_NpcTattle_MAC_PowerHungryToadKid, }; +BSS PopupMenu D_80262C38; +BSS s32 D_80262F68; +BSS s32 D_80262F6C[13]; + #include "npc/rowf_and_rhuff.inc.c" #include "npc/post_office.inc.c" #include "npc/flower_gate.inc.c" diff --git a/src/world/area_osr/osr_00/AACBB0.c b/src/world/area_osr/osr_00/AACBB0.c index 47aab49365..25f4d680e6 100644 --- a/src/world/area_osr/osr_00/AACBB0.c +++ b/src/world/area_osr/osr_00/AACBB0.c @@ -15,4 +15,8 @@ ApiStatus func_80240678_AACEA8(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } +BSS char osr_00_802437C0[0x3D88]; +BSS char D_80247548[0x208]; +BSS char D_80247750; + INCLUDE_ASM(s32, "world/area_osr/osr_00/AACBB0", func_802406E0_AACF10); diff --git a/src/world/area_trd/trd_09/trd_09_3_npcs.c b/src/world/area_trd/trd_09/trd_09_3_npcs.c index ac4dafcdde..c93b1bd616 100644 --- a/src/world/area_trd/trd_09/trd_09_3_npcs.c +++ b/src/world/area_trd/trd_09/trd_09_3_npcs.c @@ -131,9 +131,9 @@ EvtScript N(D_80240C2C_9BE28C) = { }; s32 N(missing_80240CE4_CE4)[] = { - 0x002E0001, 0x001A0020, 0x80240820, 0x00000000, 0x80240844, 0x80240A48, 0x00000000, 0x80240B80, - 0x00000000, 0x00000000, 0x000A0000, 0x002D0001, 0x000E001F, 0x80240C0C, 0x00000000, 0x80240C1C, - 0x80077F70, 0x00000000, 0x80240C2C, 0x00000000, 0x00000000, 0x00050000, + 0x002E0001, 0x001A0020, (s32) trd_09_EVS_NpcAuxAI_BillBlaster, 0x00000000, (s32) trd_09_D_80240844_9BDEA4, (s32) trd_09_EVS_NpcHit_BillBlaster, 0x00000000, (s32) trd_09_D_80240B80_9BE1E0, + 0x00000000, 0x00000000, 0x000A0000, 0x002D0001, 0x000E001F, (s32) trd_09_EVS_NpcAuxAI_BulletBill, 0x00000000, (s32) trd_09_D_80240C1C_9BE27C, + (s32) EnemyNpcHit, 0x00000000, (s32) trd_09_D_80240C2C_9BE28C, 0x00000000, 0x00000000, 0x00050000, }; EvtScript N(EVS_NpcAuxAI_KoopaBros_Red) = { diff --git a/src/world/common/complete/Quizmo.inc.c b/src/world/common/complete/Quizmo.inc.c index b8fbca20c1..3e25dfeb30 100644 --- a/src/world/common/complete/Quizmo.inc.c +++ b/src/world/common/complete/Quizmo.inc.c @@ -38,14 +38,14 @@ extern s16 MessagePlural; extern s16 MessageSingular; -static s32 N(Quizmo_Worker); -static s32 N(pad_D_8024EFA4); -static s32 N(Quizmo_ScriptArray)[4]; -static s32 N(Quizmo_AnswerResult); +BSS s32 N(Quizmo_Worker); +BSS s32 N(pad_D_8024EFA4); +BSS s32 N(Quizmo_ScriptArray)[4]; +BSS s32 N(Quizmo_AnswerResult); MAP_STATIC_PAD(1,quizmo_unk) -static EffectInstance* N(Quizmo_StageEffect); -static EffectInstance* N(Quizmo_AudienceEffect); -static EffectInstance* N(Quizmo_VannaTEffect); +BSS EffectInstance* N(Quizmo_StageEffect); +BSS EffectInstance* N(Quizmo_AudienceEffect); +BSS EffectInstance* N(Quizmo_VannaTEffect); #include "world/common/complete/GiveReward.inc.c" diff --git a/src/world/common/util/PlaySpringReboundAnimation.inc.c b/src/world/common/util/PlaySpringReboundAnimation.inc.c index adcc5ccad9..57be9b6279 100644 --- a/src/world/common/util/PlaySpringReboundAnimation.inc.c +++ b/src/world/common/util/PlaySpringReboundAnimation.inc.c @@ -1,6 +1,7 @@ #include "common.h" +#include "animation_script.h" -extern Addr EntityModel_Spring_ReboundAnim; +extern AnimScript Entity_SimpleSpring_AnimLaunch; API_CALLABLE(N(PlaySpringReboundAnimation)) { Bytecode* args = script->ptrReadPos; @@ -10,6 +11,6 @@ API_CALLABLE(N(PlaySpringReboundAnimation)) { return ApiStatus_BLOCK; } - play_model_animation(entity->virtualModelIndex, (s16*) EntityModel_Spring_ReboundAnim); + play_model_animation(entity->virtualModelIndex, Entity_SimpleSpring_AnimLaunch); return ApiStatus_DONE2; } diff --git a/tools/splat/.gitrepo b/tools/splat/.gitrepo index 630f9a3425..d1affe5cf6 100644 --- a/tools/splat/.gitrepo +++ b/tools/splat/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/ethteck/splat.git branch = master - commit = 0f66e7552ac9a7d6a48917cfd8799568838bf63d - parent = cf83d8c6cc8225b59e4f4ed8b42aed017eac9415 + commit = 741a0d030dff0f7e38071e6b8c80c2b3c7f64c9f + parent = 7baafe2faf6d3fb48e00653fa82ab72c3fa043ba method = merge cmdver = 0.4.5 diff --git a/tools/splat/segtypes/n64/gfx.py b/tools/splat/segtypes/n64/gfx.py index b4c164538e..29e82a1636 100644 --- a/tools/splat/segtypes/n64/gfx.py +++ b/tools/splat/segtypes/n64/gfx.py @@ -3,6 +3,8 @@ N64 f3dex display list splitter Dumps out Gfx[] as a .inc.c file. """ +import re + from pathlib import Path from pygfxd import ( @@ -39,6 +41,8 @@ from util.log import error from segtypes.common.codesubsegment import CommonSegCodeSubsegment +LIGHTS_RE = re.compile(r"\*\(Lightsn \*\)0x[0-9A-F]{8}") + class N64SegGfx(CommonSegCodeSubsegment): def __init__( @@ -223,6 +227,17 @@ class N64SegGfx(CommonSegCodeSubsegment): out_str += gfxd_buffer_to_string(outbuf) out_str += "};\n" + # Poor man's light fix until we get my libgfxd PR merged + def light_sub_func(match): + light = match.group(0) + addr = int(light[12:], 0) + sym = self.create_symbol( + addr=addr, in_segment=True, type="data", reference=True + ) + return self.format_sym_name(sym) + + out_str = re.sub(LIGHTS_RE, light_sub_func, out_str) + return out_str def split(self, rom_bytes: bytes): diff --git a/ver/us/asm/bss.s b/ver/us/asm/bss.s index cb925fba3b..891707ac17 100644 --- a/ver/us/asm/bss.s +++ b/ver/us/asm/bss.s @@ -254,7 +254,10 @@ dlabel nuSiMesgBuf .space 0x00000020 dlabel siMgrThread -.space 0x000021b0 +.space 0x1b0 + +dlabel siMgrStack +.space 0x2000 dlabel blendedCamSettings .space 0x0000001c diff --git a/ver/us/asm/bss3.s b/ver/us/asm/bss3.s index c815929067..7320eb22cb 100644 --- a/ver/us/asm/bss3.s +++ b/ver/us/asm/bss3.s @@ -722,4 +722,7 @@ dlabel CreateEntityVarArgBuffer .space 0x00000010 dlabel D_8015C7E0 -.space 4 +.space 0x7820 + +dlabel D_80164000 +.space 0x32C60 diff --git a/ver/us/asm/data/world/action/sneaky_parasol.data.s b/ver/us/asm/data/world/action/sneaky_parasol.data.s deleted file mode 100644 index c6bc9ce5a7..0000000000 --- a/ver/us/asm/data/world/action/sneaky_parasol.data.s +++ /dev/null @@ -1,6 +0,0 @@ -.include "macro.inc" - -.section .data - -dlabel D_802B6D80_E2B430 -.word ParasolTransformation, 0x00000000, 0x00000000, 0x00000000 diff --git a/ver/us/asm/data/world/action/use_tweester.data.s b/ver/us/asm/data/world/action/use_tweester.data.s deleted file mode 100644 index cacd90d644..0000000000 --- a/ver/us/asm/data/world/action/use_tweester.data.s +++ /dev/null @@ -1,6 +0,0 @@ -.include "macro.inc" - -.section .data - -dlabel PlayerTweesterPhysics -.word 0x802B6370, 0x00000000, 0x00000000, 0x00000000 diff --git a/ver/us/asm/nonmatchings/415D90/btl_state_update_player_menu.s b/ver/us/asm/nonmatchings/415D90/btl_state_update_player_menu.s index e453f2ffca..9e7ba6ba27 100644 --- a/ver/us/asm/nonmatchings/415D90/btl_state_update_player_menu.s +++ b/ver/us/asm/nonmatchings/415D90/btl_state_update_player_menu.s @@ -675,8 +675,8 @@ glabel btl_state_update_player_menu /* 41B0D0 802A6340 269478E0 */ addiu $s4, $s4, %lo(gItemTable) /* 41B0D4 802A6344 24120002 */ addiu $s2, $zero, 2 /* 41B0D8 802A6348 02A0882D */ daddu $s1, $s5, $zero -/* 41B0DC 802A634C 3C03802B */ lui $v1, %hi(D_802AB513) -/* 41B0E0 802A6350 9063B513 */ lbu $v1, %lo(D_802AB513)($v1) +/* 41B0DC 802A634C 3C03802B */ lui $v1, %hi(D_802AB4F0 + 0x23) +/* 41B0E0 802A6350 9063B513 */ lbu $v1, %lo(D_802AB4F0 + 0x23)($v1) /* 41B0E4 802A6354 24020155 */ addiu $v0, $zero, 0x155 /* 41B0E8 802A6358 A6C201AE */ sh $v0, 0x1ae($s6) /* 41B0EC 802A635C A2D001F6 */ sb $s0, 0x1f6($s6) diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 7102fc0a47..63becd810f 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -4793,7 +4793,95 @@ segments: vram: 0xE009C000 subsegments: - [0x3981F0, c, quizmo_stage] - - [0x398BC0, bin] # quizmo_stage gfx + - name: effect_gfx_quizmo_stage + dir: effects/gfx + type: code + start: 0x398BC0 + vram: 0x09000000 + symbol_name_format: $VRAM_$ROM + subsegments: + - [0x398BC0, c, quizmo_stage] + - start: 0x398BC0 + type: .data + name: quizmo_stage + subsegments: + - [0x398BC0] # light + - [0x398BD8, ia4, D_09000018_398BD8, 64, 16] + - [0x398DD8, gfx, D_09000218_398DD8] + - [0x398E48, rgba16, D_09000288_398E48, 32, 64] + - [0x399E48, gfx, D_09001288_399E48] + - [0x399EB8, ci4, D_090012F8_399EB8, 64, 16] + - [0x39A0B8, palette, D_090012F8_399EB8] + - [0x39A0D8, gfx, D_09001518_39A0D8] + - [0x39A178, i4, D_090015B8_39A178, 32, 32] + - [0x39A378, gfx, D_090017B8_39A378] + - [0x39A3E8, ci4, D_09001828_39A3E8, 32, 64] + - [0x39A7E8, palette, D_09001828_39A3E8] + - [0x39A808, gfx, D_09001C48_39A808] + - [0x39A8A8, rgba16, D_09001CE8_39A8A8, 32, 64] + - [0x39B8A8, gfx, D_09002CE8_39B8A8] + - [0x39B918, ci4, D_09002D58_39B918, 64, 64] + - [0x39C118, palette, D_09002D58_39B918] + - [0x39C138, gfx, D_09003578_39C138] + - [0x39C1D8, ia4, D_09003618_39C1D8, 128, 32] + - [0x39C9D8, gfx, D_09003E18_39C9D8] + - [0x39CA48, ci4, D_09003E88_39CA48, 32, 32] + - [0x39CC48, palette, D_09003E88_39CA48] + - [0x39CC68, gfx, D_090040A8_39CC68] + - [0x39CE08, ci4, D_09004248_39CE08, 64, 64] + - [0x39D608, palette, D_09004248_39CE08] + - [0x39D628, gfx, D_09004A68_39D628] + - [0x39D6C8, ia4, D_09004B08_39D6C8, 128, 32] + - [0x39DEC8, gfx, D_09005308_39DEC8] + - [0x39DF38, rgba16, D_09005378_39DF38, 64, 32] + - [0x39EF38, gfx, D_09006378_39EF38] + - [0x39EFA8, vtx, D_090063E8_39EFA8] + - [0x39EFE8, vtx, D_09006428_39EFE8] + - [0x39F028, vtx, D_09006468_39F028] + - [0x39F068, vtx, D_090064A8_39F068] + - [0x39F0A8, vtx, D_090064E8_39F0A8] + - [0x39F128, vtx, D_09006568_39F128] + - [0x39F1A8, vtx, D_090065E8_39F1A8] + - [0x39F1E8, vtx, D_09006628_39F1E8] + - [0x39F3A8, vtx, D_090067E8_39F3A8] + - [0x39F3E8, vtx, D_09006828_39F3E8] + - [0x39F428, vtx, D_09006868_39F428] + - [0x39F468, vtx, D_090068A8_39F468] + - [0x39F4A8, vtx, D_090068E8_39F4A8] + - [0x39F4E8, vtx, D_09006928_39F4E8] + - [0x39F528, vtx, D_09006968_39F528] + - [0x39F568, vtx, D_090069A8_39F568] + - [0x39F5A8, gfx, D_090069E8_39F5A8] + - [0x39F608, gfx, D_09006A48_39F608] + - [0x39F668, gfx, D_09006AA8_39F668] + - [0x39F6C8, gfx, D_09006B08_39F6C8] + - [0x39F728, gfx, D_09006B68_39F728] + - [0x39F768, gfx, D_09006BA8_39F768] + - [0x39F7C8, gfx, D_09006C08_39F7C8] + - [0x39F828, gfx, D_09006C68_39F828] + - [0x39F858, gfx, D_09006C98_39F858] + - [0x39F8B0, gfx, D_09006CF0_39F8B0] + - [0x39F908, gfx, D_09006D48_39F908] + - [0x39F938, gfx, D_09006D78_39F938] + - [0x39F960, gfx, D_09006DA0_39F960] + - [0x39F9E8, gfx, D_09006E28_39F9E8] + - [0x39FA48, gfx, D_09006E88_39FA48] + - [0x39FA78, gfx, D_09006EB8_39FA78] + - [0x39FAE0, gfx, D_09006F20_39FAE0] + - [0x39FB08, gfx, D_09006F48_39FB08] + - [0x39FB70, gfx, D_09006FB0_39FB70] + - [0x39FB98, gfx, D_09006FD8_39FB98] + - [0x39FBF0, gfx, D_09007030_39FBF0] + - [0x39FC50, gfx, D_09007090_39FC50] + - [0x39FCA8, gfx, D_090070E8_39FCA8] + - [0x39FD08, gfx, D_09007148_39FD08] + - [0x39FD48, gfx, D_09007188_39FD48] + - [0x39FD90, gfx, D_090071D0_39FD90] + - [0x39FDC0, gfx, D_09007200_39FDC0] + - [0x39FDF0, gfx, D_09007230_39FDF0] + - [0x39FE58, vtx, D_09007298_39FE58] + - [0x39FE98, gfx, D_090072D8_39FE98] + - [0x39FF18] - name: effect_radiating_energy_orb dir: effects type: code @@ -6420,39 +6508,41 @@ segments: subsegments: - [0x404220, c, partner_buff] - [0x404E40] - - type: group # partner_buff gfx + - name: effect_gfx_partner_buff + dir: effects/gfx + type: code start: 0x404F40 - align: 16 + vram: 0x09000000 + symbol_name_format: $VRAM_$ROM subsegments: + - [0x404F40, c, partner_buff] - start: 0x404F40 - type: ci4 - name: world/cloud - flip_y: true - width: 32 - height: 32 - - [0x405140, palette, world/cloud] - - start: 0x405340 - type: ci4 - name: world/waterblock - flip_y: true - width: 32 - height: 32 - - [0x405540, palette, world/waterblock] - - start: 0x405740 - type: ci4 - name: world/yellow_carpet - flip_y: true - width: 32 - height: 32 - - [0x405940, palette, world/yellow_carpet] - - start: 0x405B40 - type: ci4 - name: world/numbers - flip_y: true - width: 32 - height: 160 - - [0x406540, palette, world/numbers] - - [0x406740, bin] + type: .data + name: partner_buff + subsegments: + - [0x404F40, ci4, world/cloud, 32, 32] + - [0x405140, palette, world/cloud] + - [0x405160] # padding + - [0x405340, ci4, world/waterblock, 32, 32] + - [0x405540, palette, world/waterblock] + - [0x405560] # padding + - [0x405740, ci4, world/yellow_carpet, 32, 32] + - [0x405940, palette, world/yellow_carpet] + - [0x405960] # padding + - [0x405B40, ci4, world/numbers, 32, 32, world/numbers] # number0 + - [0x405D40, ci4, world/number1, 32, 32, world/numbers] + - [0x405F40, ci4, world/number2, 32, 32, world/numbers] + - [0x406140, ci4, world/number3, 32, 32, world/numbers] + - [0x406340, ci4, world/number4, 32, 32, world/numbers] + - [0x406540, palette, world/numbers] + - [0x406560] # padding + - [0x406740, gfx, D_09001800_406740] + - [0x4068E0, gfx, D_090019A0_4068E0] + - [0x406958, gfx, D_09001A18_406958] + - [0x4069D0, gfx, D_09001A90_4069D0] + - [0x406A48, gfx, D_09001B08_406A48] + - [0x406AC0, gfx, D_09001B80_406AC0] + - [0x406B38] - name: effect_quizmo_assistant dir: effects type: code @@ -14703,8 +14793,7 @@ segments: vram: 0x802B6000 subsegments: - [0xE2A340, c, use_tweester] - - [0xE2A690, data, use_tweester] - - [0xE2A6A0] + - [0xE2A690] - type: code name: world_action_sneaky_parasol dir: world/action @@ -14712,8 +14801,7 @@ segments: vram: 0x802B6000 subsegments: - [0xE2A6B0, c, sneaky_parasol] - - [0xE2B430, data, sneaky_parasol] - - [0xE2B440] + - [0xE2B430] - type: code dir: entity/default start: 0xE2B530 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 112da7e3b3..e94533e948 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -3967,7 +3967,6 @@ D_8010EF9E = 0x8010EF9E; // type:data rom:0xA844E D_8010EF9F = 0x8010EF9F; // type:data rom:0xA844F D_8010EFA0 = 0x8010EFA0; // type:data rom:0xA8450 gPlayerStatus = 0x8010EFC8; // rom:0xA8478 size:0x288 -gPlayerActionState = 0x8010F07C; // rom:0xA852C gPlayerAnimation = 0x8010F080; // rom:0xA8530 SetEntityCullMode = 0x80111E9C; // type:func rom:0xA859C UseDynamicShadow = 0x80111F2C; // type:func rom:0xA862C @@ -26188,7 +26187,6 @@ D_80242A00 = 0x80242A00; // type:data D_80242AC4 = 0x80242AC4; // type:data dgb_15_pad_2AC8 = 0x80242AC8; // type:data flo_14_pad_2BF4 = 0x80242BF4; // type:data -D_80242C00 = 0x80242C00; // type:data flo_08_pad_2EA8 = 0x80242EA8; // type:data D_80242FB0 = 0x80242FB0; // type:data dgb_03_pad_30D8 = 0x802430D8; // type:data @@ -26351,7 +26349,6 @@ kzn_02_LetterDelivery_SavedNpcAnim = 0x80246794; // type:data kzn_17_LetterDelivery_SavedNpcAnim = 0x802467B4; // type:data flo_00_pad_684C = 0x8024684C; // type:data dead_kzn_17_LetterDelivery_SavedNpcAnim = 0x80246894; // type:data -D_80246990 = 0x80246990; // type:data dgb_08_pad_69DC = 0x802469DC; // type:data D_80246A20 = 0x80246A20; // type:data D_80246BE8 = 0x80246BE8; // type:data @@ -27281,7 +27278,6 @@ dead_wDisabledPartnerHudScripts = 0x801000A0; // type:data dead:yes dead_80117163 = 0x80117160; // type:data dead:yes dead_gPartnerActionStatus = 0x80117160; // type:data dead:yes dead_gPlayerStatus = 0x80117578; // type:data dead:yes -dead_gPlayerActionState = 0x8011762C; // type:data dead:yes dead_gPlayerData = 0x80117840; // type:data dead:yes dead_gCollisionStatus = 0x80169B10; // type:data dead:yes dead_evt_get_variable = 0x802D4E8C; // type:func dead:yes diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index 88df7e9837..a21f4ad438 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -10,45 +10,9 @@ D_F79DDD0F = 0xF79DDD0F; D_000B32E0 = 0x000B32E0; // todo look into D_000B3AE0 = 0x000B3AE0; // todo look into -// effect_quizmo_stage -D_09000218 = 0x09000218; -D_09001518 = 0x09001518; -D_09004148 = 0x09004148; -D_09006D48 = 0x09006D48; -D_09006DA0 = 0x09006DA0; -D_09006E28 = 0x09006E28; -D_09006F20 = 0x09006F20; -D_09006FB0 = 0x09006FB0; -D_09006FD8 = 0x09006FD8; -D_09007030 = 0x09007030; -D_09007090 = 0x09007090; -D_090070E8 = 0x090070E8; -D_09007230 = 0x09007230; - -// effect_stars_shimmer -D_09000F20 = 0x09000F20; -D_090011C8 = 0x090011C8; -D_090011E0 = 0x090011E0; -D_090011F8 = 0x090011F8; -D_09001210 = 0x09001210; -D_09001228 = 0x09001228; -D_09001240 = 0x09001240; -D_09001258 = 0x09001258; -D_09001270 = 0x09001270; - -// effect_partner_buff -D_09001800 = 0x09001800; -D_090019A0 = 0x090019A0; -D_09001A18 = 0x09001A18; -D_09001A90 = 0x09001A90; -D_09001B08 = 0x09001B08; -D_09001B80 = 0x09001B80; - // hacks for various things fx_sun_undeclared = fx_sun; -EntityModel_Spring_ReboundAnim = 0x1E4; D_802AD673 = 0x802AD673; // remove when func_802A45D8 is decompiled with D_802AD670 instead of D_802AD673 -D_E007EC2F = 0xE007EC2F; // hard-coded heapy things D_80197000 = 0x80197000; // effect tlb stuff @@ -67,49 +31,6 @@ D_8038F800 = 0x8038F800; D_803B5000 = 0x803B5000; heap_battleHead = 0x803DA800; -// misc map BSS -D_80242A00 = 0x80242A00; -D_80242C00 = 0x80242C00; -D_80246990 = 0x80246990; -osr_00_802437C0 = 0x802437C0; -D_80247548 = 0x80247548; -D_80247750 = 0x80247750; -D_8024A290 = 0x8024A290; -D_8024F300 = 0x8024F300; -D_8024F304 = 0x8024F304; -D_8024F308 = 0x8024F308; -D_8024F30C = 0x8024F30C; -D_8024F318 = 0x8024F318; -D_8024F338 = 0x8024F338; -D_8024F358 = 0x8024F358; -D_8024F380 = 0x8024F380; -D_8024F3F8 = 0x8024F3F8; -D_8024F448 = 0x8024F448; -D_8024F498 = 0x8024F498; -D_8024F4E8 = 0x8024F4E8; -D_8024F570 = 0x8024F570; -D_80253060 = 0x80253060; -D_80253378 = 0x80253378; -D_80253384 = 0x80253384; -D_8025338C = 0x8025338C; -D_80253390 = 0x80253390; -D_80257118 = 0x80257118; -D_80257320 = 0x80257320; -D_80257F20 = 0x80257F20; -D_80257F21 = 0x80257F21; -D_80257F22 = 0x80257F22; -D_80257F23 = 0x80257F23; -D_80258140 = 0x80258140; -D_80258340 = 0x80258340; -D_8025B0A8 = 0x8025B0A8; -D_8025B2A8 = 0x8025B2A8; -D_8025B2AC = 0x8025B2AC; -D_8025B2B0 = 0x8025B2B0; -D_8025C0D0 = 0x8025C0D0; -D_80262C38 = 0x80262C38; -D_80262F68 = 0x80262F68; -D_8024F470_hos_bss = 0x8024F470; - // Letter delivery BSS mac_05_LetterDelivery_SavedNpcAnim = 0x80252D38; mac_00_LetterDelivery_SavedNpcAnim = 0x80255ED8; @@ -180,17 +101,12 @@ kmr_02_Quizmo_StageEffect = 0x80257F48; kmr_02_Quizmo_AudienceEffect = 0x80257F4C; kmr_02_Quizmo_VannaTEffect = 0x80257F50; -// Unsolved BSS Mysteries -D_80164000 = 0x80164000; // display contexts, part of bss3 -D_802AB513 = 0x802AB513; - // os stuff osTvType = 0x80000300; osRomBase = 0x80000308; osMemSize = 0x80000318; osResetType = 0x8000030C; osAppNMIBuffer = 0x8000031C; -D_800A08C0 = 0x800A08C0; // same as blendedCamSettings but seemingly a different symbol? // boot D_A0000000 = 0xA0000000; @@ -216,352 +132,340 @@ D_B0000008 = 0xB0000008; D_B0000010 = 0xB0000010; // Invalid pointers from dead code -dead_atan2 = 0x8002AF70; -dead_gCurrentCamID = 0x800A158C; -dead_gCameras = 0x800B8D80; -dead_wPartnerHudScripts = 0x80100060; -dead_wDisabledPartnerHudScripts = 0x801000A0; -dead_evt_get_variable = 0x802D4E8C; -dead_evt_set_variable = 0x802D5468; -dead_evt_get_float_variable = 0x802D57FC; -dead_sin_rad = 0x8002B45C; -dead_cos_rad = 0x8002B4C0; -dead_evt_set_float_variable = 0x802D5A10; -dead_fx_sparkles = 0x80075170; -dead_gPlayerStatusPtr = 0x800FFC90; -dead_set_main_pan_u = 0x80126064; -dead_set_main_pan_v = 0x8012607C; -dead_set_aux_pan_u = 0x80126094; -dead_set_aux_pan_v = 0x801260AC; -dead_get_npc_unsafe = 0x8003E4BC; -dead_fx_emote = 0x80075110; -dead_get_enemy = 0x80042AF4; -dead_dist2D = 0x8002B1C4; -dead_get_clamped_angle_diff = 0x8002AF18; -dead_clamp_angle = 0x8002AE14; -dead_add_vec2D_polar = 0x8002B28C; -dead_ai_enemy_play_sound = 0x8004D800; -dead_basic_ai_wander_init = 0x8004D9C0; -dead_basic_ai_wander = 0x8004DAD8; -dead_basic_ai_loiter_init = 0x8004DF64; -dead_basic_ai_loiter = 0x8004E024; -dead_basic_ai_found_player_jump_init = 0x8004E25C; -dead_basic_ai_found_player_jump = 0x8004E2EC; -dead_basic_ai_chase_init = 0x8004E39C; -dead_basic_ai_chase = 0x8004E544; -dead_basic_ai_lose_player = 0x8004E808; -dead_basic_ai_suspend = 0x8004EB8C; -dead_basic_ai_check_player_dist = 0x8004D1A4; -dead_npc_move_heading = 0x8003E424; -dead_sqrtf = 0x80067040; -dead_npc_test_move_simple_with_slipping = 0x800E5304; -dead_npc_raycast_down_sides = 0x800E423C; -dead_is_point_within_region = 0x8004D0C4; -dead_rand_int = 0x8002ACEC; -dead_get_npc_safe = 0x8003E534; -dead_heap_malloc = 0x8002BFD4; -dead_heap_free = 0x8002C01C; -dead_general_heap_malloc = 0x8002BF18; -dead_heap_free = 0x8002C01C; -dead_sin_deg = 0x8002B5DC; -dead_cos_deg = 0x8002B640; -dead_sin_cos_deg = 0x8002B524; -dead_subtract_hp = 0x800F1EF8; -dead_sfx_adjust_env_sound_pos = 0x8015704C; -dead_fx_star_spirits_energy = 0x80077C30; -dead_update_lerp = 0x8002B6A4; -dead_fx_spirit_card = 0x80077930; -dead_create_shadow_type = 0x8011AAB4; -dead_dist3D = 0x8002B21C; -dead_LoadPath = 0x802E2A80; -dead_GetNextPathPos = 0x802E2B74; -dead_queue_render_task = 0x80128510; -dead_create_worker_world = 0x8012DFE8; -dead_GetEntryID = 0x802D790C; -dead_SetMusicTrack = 0x802E339C; -dead_FadeInMusic = 0x802E3444; -dead_RandInt = 0x802E1D00; -dead_PlayEffect = 0x802E58EC; -dead_DisablePlayerInput = 0x802DE448; -dead_ModifyColliderFlags = 0x802D7278; -dead_PlayerMoveTo = 0x802DE754; -dead_InterpPlayerYaw = 0x802DEF5C; -dead_PlaySoundAtCollider = 0x802D7AC0; -dead_MakeLerp = 0x802E1C00; -dead_UpdateLerp = 0x802E1C7C; -dead_RotateGroup = 0x802D6D84; -dead_func_802D2C14 = 0x802E0260; -dead_GotoMap = 0x802D78AC; -dead_UseExitHeading = 0x802DF78C; -dead_ExitWalk = 0x80286004; -dead_GetLoadType = 0x802D796C; -dead_EnterSavePoint = 0x80285FC0; -dead_EnterWalk = 0x80285C70; -dead_SetSpriteShading = 0x802E6F50; -dead_SetCamLeadPlayer = 0x802D8B60; -dead_SetCamPerspective = 0x802D7CD8; -dead_SetCamBGColor = 0x802D8248; -dead_SetCamEnabled = 0x802D7B70; -dead_MakeNpcs = 0x80048338; -dead_ParentColliderToModel = 0x802D75C0; -dead_EnableTexPanning = 0x802D6688; -dead_SetTexPanOffset = 0x802D67E4; -dead_DisablePlayerPhysics = 0x802DE404; -dead_UseSettingsFrom = 0x802D8D40; -dead_SetPanTarget = 0x802D9320; -dead_SetCamDistance = 0x802D90D8; -dead_SetCamPitch = 0x802D903C; -dead_SetCamPosA = 0x802D914C; -dead_SetCamPosB = 0x802D91E8; -dead_SetCamSpeed = 0x802D93E4; -dead_PanToTarget = 0x802D8C7C; -dead_WaitForCam = 0x802D9848; -dead_ShowMessageAtWorldPos = 0x802DDEEC; -dead_ShowMessageAtScreenPos = 0x802DDE0C; -dead_GetPlayerPos = 0x802DF41C; -dead_SetPlayerJumpscale = 0x802DE674; -dead_PlayerJump1 = 0x802DEF24; -dead_DisablePartnerAI = 0x802DCA48; -dead_InterpNpcYaw = 0x802DC064; -dead_SpeakToPlayer = 0x802DD810; -dead_SetPlayerAnimation = 0x802DE6A4; -dead_ContinueSpeech = 0x802DD848; -dead_EnablePartnerAI = 0x802DCA8C; -dead_ResetCam = 0x802D9DE4; -dead_GetPlayerActionState = 0x802DF3F0; -dead_ShowChoice = 0x802DE138; -dead_SwitchMessage = 0x802DE0AC; -dead_CloseMessage = 0x802DE040; -dead_EndSpeech = 0x802DD82C; -dead_SetNpcPos = 0x802DB210; -dead_AdjustCam = 0x802D9B68; -dead_EnableGroup = 0x802D7044; -dead_SetNpcFlagBits = 0x802DC5C0; -dead_BindNpcInteract = 0x80049154; -dead_EnableNpcShadow = 0x802DC7C8; -dead_SetNpcCollisionSize = 0x802DB4EC; -dead_PlayerFaceNpc = 0x802DF124; -dead_NpcFaceNpc = 0x802DC3E0; -dead_SetNpcAnimation = 0x802DB654; -dead_PlaySoundAtNpc = 0x802DD70C; -dead_BindNpcIdle = 0x80048C5C; -dead_WaitForPlayerInputEnabled = 0x802DFB28; -dead_SetNpcRotation = 0x802DB310; -dead_EnableNpcAI = 0x80048DA0; -dead_PlaySoundAtPlayer = 0x802E0324; -dead_GetCurrentPartnerID = 0x802DD1D4; -dead_SetPlayerPos = 0x802DE510; -dead_RotateModel = 0x802D60E4; -dead_TranslateModel = 0x802D5FE0; -dead_NpcFlyTo = 0x802DBC5C; -dead_FadeOutMusic = 0x802E3330; -dead_BindNpcAI = 0x80048B18; -dead_GetSelfNpcID = 0x800496C4; -dead_GetOwnerEncounterTrigger = 0x800486A0; -dead_SetSelfEnemyFlagBits = 0x800495D4; -dead_BindNpcHit = 0x800491F0; -dead_PlaySoundAtModel = 0x802D7A04; -dead_DropItemEntity = 0x802E4410; -dead_GetValueByRef = 0x802E2F8C; -dead_SetValueByRef = 0x802E2F30; -dead_AssignPanelFlag = 0x8011A968; -dead_Entity_HiddenPanel = 0x802F8FB4; -dead_ShakeCam = 0x802D8758; -dead_func_802D62E4 = 0x802E3934; -dead_IsStartingConversation = 0x80048290; -dead_ModifyGlobalOverrideFlags = 0x802E2EAC; -dead_FindKeyItem = 0x802E4064; -dead_Entity_SuperBlock = 0x802F8DC0; -dead_AssignBlockFlag = 0x8011A8C0; -dead_AssignScript = 0x8011A804; -dead_ResetFromLava = 0x802D7384; -dead_EnemyNpcHit = 0x8007D3C0; -dead_EnemyNpcDefeat = 0x8007D4EC; -dead_BasicAI_Main = 0x8004E89C; -dead_ShowConsumableChoicePopup = 0x802E3C8C; -dead_RemoveItemAt = 0x802E3EDC; -dead_GetAngleToPlayer = 0x802E1E80; -dead_GetNpcPointer = 0x802DB1B8; -dead_RemoveNpc = 0x800483E0; -dead_EnableModel = 0x802D6708; -dead_PlaySoundAt = 0x802E382C; -dead_GetModelCenter = 0x802D6400; -dead_SetSelfVar = 0x8004930C; -dead_GetSelfVar = 0x80049370; -dead_GetPlayerTargetYaw = 0x802DF348; -dead_HidePlayerShadow = 0x802DE3C0; -dead_func_802D286C = 0x802DFEB8; -dead_func_802D2520 = 0x802DFB40; -dead_SetPlayerFlagBits = 0x802DF380; -dead_func_80044238 = 0x800482D8; -dead_SetCamType = 0x802D8FA8; -dead_SetCamPosC = 0x802D9284; -dead_SetNpcVar = 0x800493D0; -dead_StartBossBattle = 0x8004893C; -dead_Entity_MulticoinBlock = 0x802F8598; -dead_Entity_BombableRock = 0x802CCF00; -dead_OnPlayerFled = 0x800499B0; -dead_GetAngleBetweenNPCs = 0x802E1D58; -dead_AwaitPlayerApproach = 0x802E1EFC; -dead_BringPartnerOut = 0x802DCB18; -dead_PutPartnerAway = 0x802DCEE8; -dead_SetNpcSpeed = 0x802DB57C; -dead_NpcMoveTo = 0x802DB78C; -dead_SetCamTarget = 0x802D83DC; -dead_CloneModel = 0x802D63A8; -dead_MakeLocalVertexCopy = 0x802D711C; -dead_SetModelCustomGfx = 0x802D657C; -dead_SetCustomGfxBuilders = 0x802D6920; -dead_FindItem = 0x802E4168; -dead_func_802CDE68 = 0x802DB3C8; -dead_Entity_ScriptSpring = 0x802F8EE0; -dead_Entity_HiddenYellowBlock = 0x802F8A38; -dead_GetNpcYaw = 0x802DBF70; -dead_PlayAmbientSounds = 0x802E376C; -dead_SetTexPanner = 0x802D6480; -dead_func_802D7B10 = 0x802E5160; -dead_Entity_Chest = 0x802F92E0; -dead_snd_ambient_80055618 = 0x80059AC8; -dead_GetPlayerAnimation = 0x802DF4B4; -dead_SetPlayerSpeed = 0x802DE644; -dead_SetItemPos = 0x802E4720; -dead_NpcJump1 = 0x802DBC40; -dead_SpeakToNpc = 0x802DD864; -dead_AddStarPieces = 0x802E4940; -dead_Entity_Hammer3Block = 0x802F86DC; -dead_CreatePushBlockGrid = 0x80283420; -dead_SetPushBlock = 0x8028364C; -dead_GetSelfAnimationFromTable = 0x800497E4; -dead_EVS_NpcHitRecoil = 0x800990BC; -dead_SelfEnemyOverrideSyncPos = 0x80049630; -dead_func_802CFD30 = 0x802DD290; -dead_SetGroupEnabled = 0x802D6788; -dead_Entity_HeartBlock = 0x802F8C90; -dead_GetCamDistance = 0x802D9578; -dead_GetCamPitch = 0x802D94E8; -dead_GotoMapSpecial = 0x802D78CC; -dead_SetNpcAux = 0x80048E54; -dead_PlayModelAnimation = 0x802DA39C; -dead_LoadAnimatedModel = 0x802DA21C; -dead_SetAnimatorFlags = 0x802DA948; -dead_GetAnimatedPositionByTreeIndex = 0x802DAD14; -dead_GetAnimatedRotationByTreeIndex = 0x802DAE34; -dead_SetEncounterStatusFlags = 0x80048220; -dead_Entity_YellowBlock = 0x802F8A14; -dead_SetAnimatedModelRootPosition = 0x802DA514; -dead_SetNpcPaletteSwapMode = 0x802DD3E0; -dead_SetNpcPaletteSwapping = 0x802DD520; -dead_BindNpcAux = 0x80048F68; -dead_SetNpcYaw = 0x802DBFE4; -dead_ScaleGroup = 0x802D6EC8; -dead_ScaleModel = 0x802D6208; -dead_UpdateColliderTransform = 0x802D7634; -dead_TranslateGroup = 0x802D6C60; -dead_InterruptUsePartner = 0x802E01B8; -dead_SetNpcJumpscale = 0x802DB5E8; -dead_SetPlayerActionState = 0x802DE6F8; -dead_NpcJump0 = 0x802DBC24; -dead_PlaySound = 0x802E37A0; -dead_ClearPartnerMoveHistory = 0x802DC8D0; -dead_PlayerJump = 0x802DEF08; -dead_StopSound = 0x802E3908; -dead_NpcFacePlayer = 0x802DC228; -dead_func_802D2884 = 0x802DFED0; -dead_SetTimeFreezeMode = 0x802E2E80; -dead_ShowKeyChoicePopup = 0x802E3A70; -dead_CloseChoicePopup = 0x802E3FA4; -dead_AwaitPlayerLeave = 0x802E20AC; -dead_RemoveKeyItemAt = 0x802E3EA8; -dead_MakeItemEntity = 0x802E4310; -dead_RemoveItemEntity = 0x802E461C; -dead_IsPlayerWithin = 0x802E1FB4; -dead_IsPlayerOnValidFloor = 0x802DFABC; -dead_GetCurrentPartner = 0x802E0158; -dead_MakeEntity = 0x8011A58C; -dead_Entity_SavePoint = 0x802F7EC8; -dead_PopSong = 0x802E3628; -dead_PushSong = 0x802E3648; -dead_ShowGotItem = 0x802E49F4; -dead_GetBattleOutcome = 0x8004861C; -dead_DoNpcDefeat = 0x800486CC; -dead_SetCamProperties = 0x802D98E0; -dead_ShowEmote = 0x802E4EF0; -dead_SetEnemyFlagBits = 0x80049738; -dead_AddKeyItem = 0x802E3F18; -dead_BindNpcDefeat = 0x8004928C; -dead_GetNpcPos = 0x802DC654; -dead_func_802CF56C = 0x802DCACC; -dead_dma_copy = 0x8002AA2C; -dead_get_entity_by_index = 0x80118BB0; -dead_fx_sun = 0x80077BD0; +dead_transform_point = transform_point + 0x12F0; +dead_dma_copy = dma_copy + 0x12F0; +dead_rand_int = rand_int + 0x12F0; +dead_clamp_angle = clamp_angle + 0x12F0; +dead_get_clamped_angle_diff = get_clamped_angle_diff + 0x12F0; +dead_atan2 = atan2 + 0x12F0; +dead_dist2D = dist2D + 0x12F0; +dead_dist3D = dist3D + 0x12F0; +dead_add_vec2D_polar = add_vec2D_polar + 0x12F0; +dead_sin_rad = sin_rad + 0x12F0; +dead_cos_rad = cos_rad + 0x12F0; +dead_sin_cos_deg = sin_cos_deg + 0x12F0; +dead_sin_deg = sin_deg + 0x12F0; +dead_cos_deg = cos_deg + 0x12F0; +dead_update_lerp = update_lerp + 0x12F0; +dead_general_heap_malloc = general_heap_malloc + 0x12F0; +dead_general_heap_free = general_heap_free + 0x12F0; +dead_heap_malloc = heap_malloc + 0x12F0; +dead_heap_free = heap_free + 0x12F0; +dead_get_screen_coords = get_screen_coords + 0x1784; +dead_get_npc_by_index = get_npc_by_index + 0x3960; +dead_npc_move_heading = npc_move_heading + 0x39D0; +dead_get_npc_unsafe = get_npc_unsafe + 0x39D0; +dead_get_npc_safe = get_npc_safe + 0x39EC; +dead_disable_npc_shadow = disable_npc_shadow + 0x39EC; +dead_set_npc_yaw = set_npc_yaw + 0x3A10; +dead_func_8003D660 = func_8003D660 + 0x3A20; +dead_get_enemy = get_enemy + 0x3E0C; +dead_SetEncounterStatusFlags = SetEncounterStatusFlags + 0x40A0; +dead_IsStartingConversation = IsStartingConversation + 0x40A0; +dead_func_80044238 = func_80044238 + 0x40A0; +dead_MakeNpcs = MakeNpcs + 0x40A0; +dead_RemoveNpc = RemoveNpc + 0x40A0; +dead_GetBattleOutcome = GetBattleOutcome + 0x40A0; +dead_GetOwnerEncounterTrigger = GetOwnerEncounterTrigger + 0x40A0; +dead_DoNpcDefeat = DoNpcDefeat + 0x40A0; +dead_StartBossBattle = StartBossBattle + 0x40A0; +dead_BindNpcAI = BindNpcAI + 0x40A0; +dead_BindNpcIdle = BindNpcIdle + 0x40B0; +dead_EnableNpcAI = EnableNpcAI + 0x40B0; +dead_SetNpcAux = SetNpcAux + 0x40B0; +dead_BindNpcAux = BindNpcAux + 0x40B0; +dead_BindNpcInteract = BindNpcInteract + 0x40B0; +dead_BindNpcHit = BindNpcHit + 0x40B0; +dead_BindNpcDefeat = BindNpcDefeat + 0x40B0; +dead_SetSelfVar = SetSelfVar + 0x40B0; +dead_GetSelfVar = GetSelfVar + 0x40B0; +dead_SetNpcVar = SetNpcVar + 0x40B0; +dead_SetSelfEnemyFlagBits = SetSelfEnemyFlagBits + 0x40B0; +dead_SelfEnemyOverrideSyncPos = SelfEnemyOverrideSyncPos + 0x40B0; +dead_GetSelfNpcID = GetSelfNpcID + 0x40B0; +dead_SetEnemyFlagBits = SetEnemyFlagBits + 0x40B0; +dead_GetSelfAnimationFromTable = GetSelfAnimationFromTable + 0x40B0; +dead_OnPlayerFled = OnPlayerFled + 0x40B0; +dead_is_point_within_region = is_point_within_region + 0x40F0; +dead_basic_ai_check_player_dist = basic_ai_check_player_dist + 0x40F0; +dead_ai_enemy_play_sound = ai_enemy_play_sound + 0x4340; +dead_basic_ai_wander_init = basic_ai_wander_init + 0x4420; +dead_basic_ai_wander = basic_ai_wander + 0x4420; +dead_basic_ai_loiter_init = basic_ai_loiter_init + 0x4420; +dead_basic_ai_loiter = basic_ai_loiter + 0x4420; +dead_basic_ai_found_player_jump_init = basic_ai_found_player_jump_init + 0x4420; +dead_basic_ai_found_player_jump = basic_ai_found_player_jump + 0x4420; +dead_basic_ai_chase_init = basic_ai_chase_init + 0x4420; +dead_basic_ai_chase = basic_ai_chase + 0x4420; +dead_basic_ai_lose_player = basic_ai_lose_player + 0x4420; +dead_BasicAI_Main = BasicAI_Main + 0x4420; +dead_basic_ai_suspend = basic_ai_suspend + 0x4450; +dead_snd_ambient_80055618 = snd_ambient_80055618 + 0x44B0; +dead_get_current_map_settings = get_current_map_settings + 0x4540; +dead_load_asset_by_name = load_asset_by_name + 0x4550; +dead_osVirtualToPhysical = osVirtualToPhysical + 0x5150; +dead_sqrtf = sqrtf + 0x5150; +dead_guMtxIdentF = guMtxIdentF + 0x51C0; +dead_guMtxF2L = guMtxF2L + 0x51C0; +dead_guMtxCatF = guMtxCatF + 0x51C0; +dead_guTranslateF = guTranslateF + 0x51C0; +dead_decode_yay0 = decode_yay0 + 0x5280; +dead_fx_emote = fx_emote + 0x5280; +dead_fx_sparkles = fx_sparkles + 0x5280; +dead_fx_radial_shimmer = fx_radial_shimmer + 0x5280; +dead_fx_motion_blur_flame = fx_motion_blur_flame + 0x5280; +dead_fx_energy_orb_wave = fx_energy_orb_wave + 0x5280; +dead_fx_misc_particles = fx_misc_particles + 0x5280; +dead_fx_spirit_card = fx_spirit_card + 0x5280; +dead_fx_sun = fx_sun + 0x5280; dead_fx_sun_undeclared = dead_fx_sun; -dead_func_8003D660 = 0x80041080; -dead_set_max_SP = 0x800F1D9C; -dead_sync_status_menu = 0x800F1730; -dead_get_npc_by_index = 0x8003C43C; -dead_increment_status_menu_disabled = 0x800F1718; -dead_decrement_status_menu_disabled = 0x800F16F4; -dead_get_model_list_index_from_tree_index = 0x80125270; -dead_get_model_from_list_index = 0x80124F44; -dead_guTranslateF = 0x8006CAC0; -dead_fx_misc_particles = 0x800775D0; -dead_entity_upgrade_block_hide_content = 0x802F3B00; -dead_create_popup_menu = 0x800FCD0C; -dead_hide_popup_menu = 0x800F9260; -dead_destroy_popup_menu = 0x800F93E8; -dead_switch_to_partner = 0x800F2D5C; -dead_set_message_msg = 0x80130C74; -dead_fx_energy_orb_wave = 0x800769D0; -dead_fx_radial_shimmer = 0x80075E30; -dead_set_screen_overlay_color = 0x80144200; -dead_set_screen_overlay_params_front = 0x80144178; -dead_npc_test_move_simple_without_slipping = 0x800E53AC; -dead_get_item_entity = 0x8013CF98; -dead_get_current_map_settings = 0x8005F128; -dead_partner_clear_player_tracking = 0x800F7278; -dead_set_npc_yaw = 0x8003ED50; -dead_disable_npc_shadow = 0x8003E5E8; -dead_get_screen_coords = 0x8002FCBC; -dead_sfx_get_spatialized_sound_params = 0x801574DC; -dead_sfx_play_sound_with_params = 0x80157118; -dead_load_asset_by_name = 0x8005F238; -dead_decode_yay0 = 0x80074070; -dead_general_heap_free = 0x8002BF68; -dead_set_message_images = 0x80130C64; -dead_set_screen_overlay_params_back = 0x80144194; -dead_gItemTable = 0x8008D2C0; -dead_gPlayerStatus = 0x80117578; -dead_gPlayerActionState = 0x8011762C; -dead_gPartnerActionStatus = 0x80117160; -dead_80117163 = 0x80117160; -dead_gPlayerData = 0x80117840; -dead_gCollisionStatus = 0x80169B10; -dead_gOverrideFlags = 0x800A15A8; -dead_fx_motion_blur_flame = 0x80076970; -dead_gCurrentEncounter = 0x800B7EF0; -dead_guMtxIdentF = 0x8006C660; -dead_guMtxCatF = 0x8006C7C0; -dead_gCurrentCameraID = 0x8007C760; -dead_gGameStatusPtr = 0x80079430; -dead_gPartnerPopupProperties = 0x80094900; -dead_nuGfxZBuffer = 0x800A1530; -dead_osVirtualToPhysical = 0x80066FE0; -dead_transform_point = 0x8002A910; -dead_gMasterGfxPos = 0x800A15C4; -dead_nuGfxCfb_ptr = 0x800A15A4; -dead_guMtxF2L = 0x8006C6C0; -dead_mdl_get_copied_vertices = 0x801266F8; -dead_mdl_get_copied_gfx = 0x80126734; -dead_gMatrixListPos = 0x80079540; -dead_gDisplayContext = 0x800A15CC; -dead_03_D_802442D0 = 0x802442D0; -dead_03_LetterDelivery_SavedNpcAnim = 0x80244494; -dead_flo_08_ItemChoiceList = 0x802462F0; -dead_flo_08_FlowerGuard_ItemChoiceList = 0x80246460; -dead_flo_12_D_802429E0 = 0x802429E0; -dead_kzn_17_D_802466D0 = 0x802466D0; -dead_kzn_17_LetterDelivery_SavedNpcAnim = 0x80246894; -dead_kzn_19_D_80248388 = 0x80248388; -dead_kzn_19_LetterDelivery_SavedNpcAnim = 0x8024854C; -dead_func_800EB2A4 = 0x800F2E98; +dead_fx_star_spirits_energy = fx_star_spirits_energy + 0x5280; +dead_gGameStatusPtr = gGameStatusPtr + 0x5294; +dead_gMatrixListPos = gMatrixListPos + 0x5350; +dead_gCurrentCameraID = gCurrentCameraID + 0x5350; +dead_EnemyNpcHit = EnemyNpcHit + 0x5450; +dead_EnemyNpcDefeat = EnemyNpcDefeat + 0x5450; +dead_gItemTable = gItemTable + 0x59E0; +dead_gPartnerPopupProperties = gPartnerPopupProperties + 0x59E0; +dead_EVS_NpcHitRecoil = EVS_NpcHitRecoil + 0x59E0; +dead_nuGfxZBuffer = nuGfxZBuffer + 0x6F54; +dead_gCurrentCamID = gCurrentCamID + 0x6F58; +dead_nuGfxCfb_ptr = nuGfxCfb_ptr + 0x6F58; +dead_gOverrideFlags = gOverrideFlags + 0x6F58; +dead_gMasterGfxPos = gMasterGfxPos + 0x6F58; +dead_gDisplayContext = gDisplayContext + 0x6F58; +dead_gCurrentEncounter = gCurrentEncounter + 0x6FE0; +dead_gCameras = gCameras + 0x7000; +dead_npc_raycast_down_sides = npc_raycast_down_sides + 0x76C0; +dead_npc_test_move_simple_with_slipping = npc_test_move_simple_with_slipping + 0x76C0; +dead_npc_test_move_simple_without_slipping = npc_test_move_simple_without_slipping + 0x76C0; +dead_decrement_status_menu_disabled = decrement_status_menu_disabled + 0x7BC4; +dead_increment_status_menu_disabled = increment_status_menu_disabled + 0x7BC4; +dead_sync_status_menu = sync_status_menu + 0x7BC4; +dead_set_max_SP = set_max_SP + 0x7BC4; +dead_subtract_hp = subtract_hp + 0x7BC4; +dead_switch_to_partner = switch_to_partner + 0x7BF4; +dead_func_800EB2A4 = func_800EB2A4 + 0x7BF4; +dead_partner_clear_player_tracking = partner_clear_player_tracking + 0x7E1C; +dead_hide_popup_menu = hide_popup_menu + 0x7EB0; +dead_destroy_popup_menu = destroy_popup_menu + 0x7EB0; +dead_create_popup_menu = create_popup_menu + 0x7ECC; +dead_gPlayerStatusPtr = gPlayerStatusPtr + 0x8160; +dead_wPartnerHudScripts = wPartnerHudScripts + 0x8160; +dead_wDisabledPartnerHudScripts = wDisabledPartnerHudScripts + 0x8160; +dead_gPartnerActionStatus = gPartnerActionStatus + 0x85B0; +dead_gPlayerStatus = gPlayerStatus + 0x85B0; +dead_gPlayerData = gPlayerData + 0x85B0; +dead_get_entity_by_index = get_entity_by_index + 0x85C8; +dead_MakeEntity = MakeEntity + 0x8854; +dead_AssignScript = AssignScript + 0x8854; +dead_AssignBlockFlag = AssignBlockFlag + 0x8854; +dead_AssignPanelFlag = AssignPanelFlag + 0x8854; +dead_create_shadow_type = create_shadow_type + 0x8854; +dead_get_model_from_list_index = get_model_from_list_index + 0xA214; +dead_get_model_list_index_from_tree_index = get_model_list_index_from_tree_index + 0xA260; +dead_set_main_pan_u = set_main_pan_u + 0xA448; +dead_set_main_pan_v = set_main_pan_v + 0xA448; +dead_set_aux_pan_u = set_aux_pan_u + 0xA448; +dead_set_aux_pan_v = set_aux_pan_v + 0xA448; +dead_mdl_get_copied_vertices = mdl_get_copied_vertices + 0xA448; +dead_mdl_get_copied_gfx = mdl_get_copied_gfx + 0xA448; +dead_queue_render_task = queue_render_task + 0xAC00; +dead_create_worker_world = create_worker_world + 0xAE90; +dead_set_message_images = set_message_images + 0xB138; +dead_set_message_msg = set_message_msg + 0xB138; +dead_get_item_entity = get_item_entity + 0xC040; +dead_set_screen_overlay_params_front = set_screen_overlay_params_front + 0xC3F0; +dead_set_screen_overlay_params_back = set_screen_overlay_params_back + 0xC3F0; +dead_set_screen_overlay_color = set_screen_overlay_color + 0xC3F0; +dead_sfx_adjust_env_sound_pos = sfx_adjust_env_sound_pos + 0xD660; +dead_sfx_play_sound_with_params = sfx_play_sound_with_params + 0xD660; +dead_sfx_get_spatialized_sound_params = sfx_get_spatialized_sound_params + 0xD6D8; +dead_gCollisionStatus = gCollisionStatus + 0xF5C0; +dead_CreatePushBlockGrid = CreatePushBlockGrid + 0x140; +dead_SetPushBlock = SetPushBlock + 0x1D0; +dead_EnterWalk = EnterWalk + 0x310; +dead_EnterSavePoint = EnterSavePoint + 0x310; +dead_ExitWalk = ExitWalk + 0x310; +dead_Entity_BombableRock = Entity_BombableRock + 0x10000; +dead_evt_get_variable = evt_get_variable + 0xD3D0; +dead_evt_set_variable = evt_set_variable + 0xD3D0; +dead_evt_get_float_variable = evt_get_float_variable + 0xD3D0; +dead_evt_set_float_variable = evt_set_float_variable + 0xD3D0; +dead_TranslateModel = TranslateModel + 0xD480; +dead_RotateModel = RotateModel + 0xD480; +dead_ScaleModel = ScaleModel + 0xD480; +dead_CloneModel = CloneModel + 0xD480; +dead_GetModelCenter = GetModelCenter + 0xD480; +dead_SetTexPanner = SetTexPanner + 0xD480; +dead_SetModelCustomGfx = SetModelCustomGfx + 0xD480; +dead_EnableTexPanning = EnableTexPanning + 0xD480; +dead_EnableModel = EnableModel + 0xD480; +dead_SetGroupEnabled = SetGroupEnabled + 0xD480; +dead_SetTexPanOffset = SetTexPanOffset + 0xD480; +dead_SetCustomGfxBuilders = SetCustomGfxBuilders + 0xD480; +dead_TranslateGroup = TranslateGroup + 0xD4AC; +dead_RotateGroup = RotateGroup + 0xD4AC; +dead_ScaleGroup = ScaleGroup + 0xD4AC; +dead_EnableGroup = EnableGroup + 0xD4AC; +dead_MakeLocalVertexCopy = MakeLocalVertexCopy + 0xD4AC; +dead_ModifyColliderFlags = ModifyColliderFlags + 0xD4AC; +dead_ResetFromLava = ResetFromLava + 0xD4AC; +dead_ParentColliderToModel = ParentColliderToModel + 0xD4AC; +dead_UpdateColliderTransform = UpdateColliderTransform + 0xD4AC; +dead_GotoMap = GotoMap + 0xD4AC; +dead_GotoMapSpecial = GotoMapSpecial + 0xD4AC; +dead_GetEntryID = GetEntryID + 0xD4AC; +dead_GetLoadType = GetLoadType + 0xD4AC; +dead_PlaySoundAtModel = PlaySoundAtModel + 0xD4AC; +dead_PlaySoundAtCollider = PlaySoundAtCollider + 0xD4AC; +dead_SetCamEnabled = SetCamEnabled + 0xD4B0; +dead_SetCamPerspective = SetCamPerspective + 0xD4B0; +dead_SetCamBGColor = SetCamBGColor + 0xD4B0; +dead_SetCamTarget = SetCamTarget + 0xD4B0; +dead_ShakeCam = ShakeCam + 0xD4B0; +dead_SetCamLeadPlayer = SetCamLeadPlayer + 0xD4E0; +dead_PanToTarget = PanToTarget + 0xD4E0; +dead_UseSettingsFrom = UseSettingsFrom + 0xD4E0; +dead_SetCamType = SetCamType + 0xD4F4; +dead_SetCamPitch = SetCamPitch + 0xD4F4; +dead_SetCamDistance = SetCamDistance + 0xD4F4; +dead_SetCamPosA = SetCamPosA + 0xD4F4; +dead_SetCamPosB = SetCamPosB + 0xD4F4; +dead_SetCamPosC = SetCamPosC + 0xD4F4; +dead_SetPanTarget = SetPanTarget + 0xD4F4; +dead_SetCamSpeed = SetCamSpeed + 0xD4F4; +dead_GetCamPitch = GetCamPitch + 0xD4F4; +dead_GetCamDistance = GetCamDistance + 0xD4F4; +dead_WaitForCam = WaitForCam + 0xD4F4; +dead_SetCamProperties = SetCamProperties + 0xD4F4; +dead_AdjustCam = AdjustCam + 0xD508; +dead_ResetCam = ResetCam + 0xD51C; +dead_LoadAnimatedModel = LoadAnimatedModel + 0xD530; +dead_PlayModelAnimation = PlayModelAnimation + 0xD530; +dead_SetAnimatedModelRootPosition = SetAnimatedModelRootPosition + 0xD530; +dead_SetAnimatorFlags = SetAnimatorFlags + 0xD530; +dead_GetAnimatedPositionByTreeIndex = GetAnimatedPositionByTreeIndex + 0xD53C; +dead_GetAnimatedRotationByTreeIndex = GetAnimatedRotationByTreeIndex + 0xD53C; +dead_GetNpcPointer = GetNpcPointer + 0xD560; +dead_SetNpcPos = SetNpcPos + 0xD560; +dead_SetNpcRotation = SetNpcRotation + 0xD560; +dead_func_802CDE68 = func_802CDE68 + 0xD560; +dead_SetNpcCollisionSize = SetNpcCollisionSize + 0xD560; +dead_SetNpcSpeed = SetNpcSpeed + 0xD560; +dead_SetNpcJumpscale = SetNpcJumpscale + 0xD560; +dead_SetNpcAnimation = SetNpcAnimation + 0xD560; +dead_NpcMoveTo = NpcMoveTo + 0xD560; +dead_NpcJump0 = NpcJump0 + 0xD560; +dead_NpcJump1 = NpcJump1 + 0xD560; +dead_NpcFlyTo = NpcFlyTo + 0xD560; +dead_GetNpcYaw = GetNpcYaw + 0xD560; +dead_SetNpcYaw = SetNpcYaw + 0xD560; +dead_InterpNpcYaw = InterpNpcYaw + 0xD560; +dead_NpcFacePlayer = NpcFacePlayer + 0xD560; +dead_NpcFaceNpc = NpcFaceNpc + 0xD560; +dead_SetNpcFlagBits = SetNpcFlagBits + 0xD560; +dead_GetNpcPos = GetNpcPos + 0xD560; +dead_EnableNpcShadow = EnableNpcShadow + 0xD560; +dead_ClearPartnerMoveHistory = ClearPartnerMoveHistory + 0xD560; +dead_DisablePartnerAI = DisablePartnerAI + 0xD560; +dead_EnablePartnerAI = EnablePartnerAI + 0xD560; +dead_func_802CF56C = func_802CF56C + 0xD560; +dead_BringPartnerOut = BringPartnerOut + 0xD560; +dead_PutPartnerAway = PutPartnerAway + 0xD560; +dead_GetCurrentPartnerID = GetCurrentPartnerID + 0xD560; +dead_func_802CFD30 = func_802CFD30 + 0xD560; +dead_SetNpcPaletteSwapMode = SetNpcPaletteSwapMode + 0xD560; +dead_SetNpcPaletteSwapping = SetNpcPaletteSwapping + 0xD560; +dead_PlaySoundAtNpc = PlaySoundAtNpc + 0xD560; +dead_SpeakToPlayer = SpeakToPlayer + 0xD560; +dead_EndSpeech = EndSpeech + 0xD560; +dead_ContinueSpeech = ContinueSpeech + 0xD560; +dead_SpeakToNpc = SpeakToNpc + 0xD560; +dead_ShowMessageAtScreenPos = ShowMessageAtScreenPos + 0xD578; +dead_ShowMessageAtWorldPos = ShowMessageAtWorldPos + 0xD590; +dead_CloseMessage = CloseMessage + 0xD5A8; +dead_SwitchMessage = SwitchMessage + 0xD5B0; +dead_ShowChoice = ShowChoice + 0xD5CC; +dead_HidePlayerShadow = HidePlayerShadow + 0xD620; +dead_DisablePlayerPhysics = DisablePlayerPhysics + 0xD620; +dead_DisablePlayerInput = DisablePlayerInput + 0xD620; +dead_SetPlayerPos = SetPlayerPos + 0xD620; +dead_SetPlayerSpeed = SetPlayerSpeed + 0xD620; +dead_SetPlayerJumpscale = SetPlayerJumpscale + 0xD620; +dead_SetPlayerAnimation = SetPlayerAnimation + 0xD620; +dead_SetPlayerActionState = SetPlayerActionState + 0xD620; +dead_PlayerMoveTo = PlayerMoveTo + 0xD620; +dead_PlayerJump = PlayerJump + 0xD620; +dead_PlayerJump1 = PlayerJump1 + 0xD620; +dead_InterpPlayerYaw = InterpPlayerYaw + 0xD620; +dead_PlayerFaceNpc = PlayerFaceNpc + 0xD620; +dead_GetPlayerTargetYaw = GetPlayerTargetYaw + 0xD620; +dead_SetPlayerFlagBits = SetPlayerFlagBits + 0xD620; +dead_GetPlayerActionState = GetPlayerActionState + 0xD620; +dead_GetPlayerPos = GetPlayerPos + 0xD620; +dead_GetPlayerAnimation = GetPlayerAnimation + 0xD620; +dead_UseExitHeading = UseExitHeading + 0xD620; +dead_IsPlayerOnValidFloor = IsPlayerOnValidFloor + 0xD620; +dead_WaitForPlayerInputEnabled = WaitForPlayerInputEnabled + 0xD620; +dead_func_802D2520 = func_802D2520 + 0xD620; +dead_func_802D286C = func_802D286C + 0xD64C; +dead_func_802D2884 = func_802D2884 + 0xD64C; +dead_GetCurrentPartner = GetCurrentPartner + 0xD64C; +dead_InterruptUsePartner = InterruptUsePartner + 0xD64C; +dead_func_802D2C14 = func_802D2C14 + 0xD64C; +dead_PlaySoundAtPlayer = PlaySoundAtPlayer + 0xD64C; +dead_MakeLerp = MakeLerp + 0xD650; +dead_UpdateLerp = UpdateLerp + 0xD650; +dead_RandInt = RandInt + 0xD650; +dead_GetAngleBetweenNPCs = GetAngleBetweenNPCs + 0xD650; +dead_GetAngleToPlayer = GetAngleToPlayer + 0xD650; +dead_AwaitPlayerApproach = AwaitPlayerApproach + 0xD650; +dead_IsPlayerWithin = IsPlayerWithin + 0xD650; +dead_AwaitPlayerLeave = AwaitPlayerLeave + 0xD650; +dead_LoadPath = LoadPath + 0xD650; +dead_GetNextPathPos = GetNextPathPos + 0xD650; +dead_SetTimeFreezeMode = SetTimeFreezeMode + 0xD650; +dead_ModifyGlobalOverrideFlags = ModifyGlobalOverrideFlags + 0xD650; +dead_SetValueByRef = SetValueByRef + 0xD650; +dead_GetValueByRef = GetValueByRef + 0xD650; +dead_FadeOutMusic = FadeOutMusic + 0xD650; +dead_SetMusicTrack = SetMusicTrack + 0xD650; +dead_FadeInMusic = FadeInMusic + 0xD650; +dead_PopSong = PopSong + 0xD650; +dead_PushSong = PushSong + 0xD650; +dead_PlayAmbientSounds = PlayAmbientSounds + 0xD650; +dead_PlaySound = PlaySound + 0xD650; +dead_PlaySoundAt = PlaySoundAt + 0xD650; +dead_StopSound = StopSound + 0xD650; +dead_func_802D62E4 = func_802D62E4 + 0xD650; +dead_ShowKeyChoicePopup = ShowKeyChoicePopup + 0xD650; +dead_ShowConsumableChoicePopup = ShowConsumableChoicePopup + 0xD650; +dead_RemoveKeyItemAt = RemoveKeyItemAt + 0xD650; +dead_RemoveItemAt = RemoveItemAt + 0xD650; +dead_AddKeyItem = AddKeyItem + 0xD650; +dead_CloseChoicePopup = CloseChoicePopup + 0xD650; +dead_FindKeyItem = FindKeyItem + 0xD650; +dead_FindItem = FindItem + 0xD650; +dead_MakeItemEntity = MakeItemEntity + 0xD650; +dead_DropItemEntity = DropItemEntity + 0xD650; +dead_RemoveItemEntity = RemoveItemEntity + 0xD650; +dead_SetItemPos = SetItemPos + 0xD650; +dead_AddStarPieces = AddStarPieces + 0xD650; +dead_ShowGotItem = ShowGotItem + 0xD650; +dead_ShowEmote = ShowEmote + 0xD650; +dead_func_802D7B10 = func_802D7B10 + 0xD650; +dead_PlayEffect = PlayEffect + 0xD650; +dead_SetSpriteShading = SetSpriteShading + 0xD850; +dead_entity_upgrade_block_hide_content = entity_upgrade_block_hide_content + 0xE470; +dead_Entity_SavePoint = Entity_SavePoint + 0xE4B0; +dead_Entity_MulticoinBlock = Entity_MulticoinBlock + 0xE4B0; +dead_Entity_Hammer3Block = Entity_Hammer3Block + 0xE4B0; +dead_Entity_YellowBlock = Entity_YellowBlock + 0xE4B0; +dead_Entity_HiddenYellowBlock = Entity_HiddenYellowBlock + 0xE4B0; +dead_Entity_HeartBlock = Entity_HeartBlock + 0xE4B0; +dead_Entity_SuperBlock = Entity_SuperBlock + 0xE4B0; +dead_Entity_ScriptSpring = Entity_ScriptSpring + 0xE4B0; +dead_Entity_HiddenPanel = Entity_HiddenPanel + 0xE4B0; +dead_Entity_Chest = Entity_Chest + 0xE4B0; func_8004D8E0 = 0x8004D8E0;