more segments for pal (#1095)

* evt segment for pal

* fix issue with auto on effect loads segment

* Clean up undefined_syms

* Clean up

* meowp

* Match engine4

* Remove Addr declarations

* Fix indentation

* Remove `#if` for pal main segment

---------

Co-authored-by: Marijn van der Werf <marijn.vanderwerf@gmail.com>
This commit is contained in:
Ethan Roseman 2023-07-25 03:07:47 +09:00 committed by GitHub
parent 9f00021dbe
commit 9fe80585a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 292 additions and 472 deletions

View File

@ -2692,102 +2692,8 @@ enum DoorSounds {
DOOR_SOUNDS_UNUSED = 6,
};
#ifdef VERSION_US
#if VERSION_US || VERSION_PAL
#include "sprite/sprite_shading_profiles.h"
#elif VERSION_PAL
// TODO: remove and split shading profiles
enum ShadingProfile {
SHADING_NONE = 0xFFFFFFFF,
SHADING_TIK_01 = 0,
SHADING_TIK_02,
SHADING_TIK_03,
SHADING_TIK_04,
SHADING_TIK_05,
SHADING_TIK_06,
SHADING_TIK_07,
SHADING_TIK_08,
SHADING_TIK_09,
SHADING_TIK_10,
SHADING_TIK_12,
SHADING_TIK_14,
SHADING_TIK_15,
SHADING_TIK_18,
SHADING_TIK_20,
SHADING_TIK_21,
SHADING_TIK_22,
SHADING_TIK_23,
SHADING_TIK_24,
SHADING_TIK_25,
SHADING_KMR_30 = 0x10000,
SHADING_ISK_03 = 0x20000,
SHADING_ISK_04,
SHADING_ISK_05,
SHADING_ISK_06,
SHADING_ISK_07,
SHADING_ISK_08,
SHADING_ISK_09,
SHADING_ISK_10,
SHADING_ISK_11,
SHADING_ISK_12,
SHADING_ISK_13,
SHADING_ISK_14,
SHADING_ISK_16,
SHADING_ISK_UNUSED,
SHADING_ISK_18,
SHADING_ISK_19,
SHADING_HOS_01 = 0x00030000,
SHADING_OSR_02 = 0x00040000,
SHADING_KKJ_10 = 0x00050000,
SHADING_KKJ_11,
SHADING_KKJ_12,
SHADING_KKJ_13,
SHADING_KKJ_17,
SHADING_KKJ_20,
SHADING_KKJ_22,
SHADING_KKJ_23,
SHADING_KKJ_24,
SHADING_KKJ_25,
SHADING_KKJ_26,
SHADING_KKJ_27,
SHADING_JAN_17 = 0x00060000,
SHADING_JAN_19,
SHADING_MIM_01 = 0x00070000,
SHADING_MIM_02,
SHADING_MIM_03,
SHADING_MIM_04,
SHADING_MIM_05,
SHADING_MIM_06,
SHADING_MIM_07,
SHADING_MIM_08,
SHADING_MIM_09,
SHADING_MIM_11,
SHADING_MIM_12,
SHADING_ARN_09 = 0x00080000,
SHADING_ARN_10,
SHADING_ARN_11,
SHADING_ARN_12,
SHADING_ARN_13,
SHADING_DGB_06 = 0x00090000,
SHADING_KZN_01 = 0x000A0000,
SHADING_KZN_02,
SHADING_KZN_03,
SHADING_KZN_04,
SHADING_KZN_05,
SHADING_KZN_06,
SHADING_KZN_07,
SHADING_KZN_08,
SHADING_KZN_09,
SHADING_KZN_10,
SHADING_KZN_11,
SHADING_KZN_17,
SHADING_KZN_18,
SHADING_KZN_19,
SHADING_KZN_20,
SHADING_KZN_22,
SHADING_KZN_23,
SHADING_UNUSED = 0x000B0000,
SHADING_BTL_ISK = 0x000C0000,
};
#endif
enum LightSourceFlags {

View File

@ -6,8 +6,10 @@
#ifdef SHIFT
#define SPRITE_ROM_START (u32) sprites_ROM_START + 0x10
#else
#elif VERSION_US
#define SPRITE_ROM_START 0x1943000 + 0x10
#elif VERSION_PAL
#define SPRITE_ROM_START 0x1DF0000 + 0x10
#endif
extern s32 spr_allocateBtlComponentsOnWorldHeap;

View File

@ -9,7 +9,7 @@ u16 StarShrineLightBeamAlpha = 255;
extern s32 gSpriteShadingHeader[2];
extern u8 gSpriteShadingData[0x100];
extern u8 sprite_shading_profiles_data_ROM_START[];
extern Addr sprite_shading_profiles_data_ROM_START;
s32 SetSpriteShading(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;

View File

@ -556,3 +556,12 @@ ApiStatus ClampAngleFloat(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
#if VERSION_PAL
ApiStatus GetLanguage(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
evt_set_variable(script, *args++, gCurrentLanguage);
return ApiStatus_DONE2;
}
#endif

View File

@ -65,6 +65,10 @@ BSS s32 RunningMusicEventIDs[10];
BSS s32 D_802DB828[2]; // unused?
BSS PopupMenu D_802DB830;
#if VERSION_PAL
BSS s32 D_PAL_BSS_802E1E34[0x3]; // TODO: probably just alignment
#endif
// demo_api
BSS s32 gSpriteShadingHeader;
BSS s32 D_802DBB64; // unused?

View File

@ -718,8 +718,6 @@ void pause_tutorial_input(s32 *pressed, s32 *held) {
*held = heldNew;
}
void pause_handle_input(s32 pressed, s32 held) {
s32 height;
s32 width;
@ -827,8 +825,6 @@ void pause_cleanup(void) {
set_window_update(WINDOW_ID_PAUSE_CURSOR, WINDOW_UPDATE_HIDE);
}
s32 pause_get_total_equipped_bp_cost(void) {
s32 totalCost = 0;
s32 i;

View File

@ -135,3 +135,6 @@ glabel fx_{name}
)
return ret
def should_split(self) -> bool:
return options.opts.is_mode_active(self.type)

135
ver/pal/effects.yaml Normal file
View File

@ -0,0 +1,135 @@
- fx_big_dust_puff
- fx_big_smoke_puff
- fx_02
- fx_03
- fx_04
- fx_05
- fx_landing_dust
- fx_walking_dust
- fx_flower_splash
- fx_flower_trail
- fx_cloud_puff
- fx_cloud_trail
- fx_footprint
- fx_floating_flower
- fx_snowflake
- fx_star
- fx_emote
- fx_sparkles
- fx_shape_spell
- fx_gather_energy_pink
- fx_drop_leaves
- fx_dust
- fx_shattering_stones
- fx_smoke_ring
- fx_damage_stars
- fx_explosion
- fx_lens_flare
- fx_got_item_outline
- fx_spiky_white_aura
- fx_smoke_impact
- fx_damage_indicator
- fx_purple_ring
- fx_flame
- fx_stars_burst
- fx_stars_shimmer
- fx_rising_bubble
- fx_ring_blast
- fx_shockwave
- fx_music_note
- fx_smoke_burst
- fx_sweat
- fx_sleep_bubble
- fx_2A
- fx_windy_leaves
- fx_falling_leaves
- fx_stars_spread
- fx_steam_burst
- fx_stars_orbiting
- fx_big_snowflakes
- fx_debuff
- fx_green_impact
- fx_radial_shimmer
- fx_ending_decals
- fx_light_rays
- fx_lightning
- fx_fire_breath
- fx_shimmer_burst
- fx_energy_shockwave
- fx_shimmer_wave
- fx_aura
- fx_bulb_glow
- fx_3D
- fx_blast
- fx_fire_flower
- fx_recover
- fx_disable_x
- fx_bombette_breaking
- fx_firework
- fx_confetti
- fx_snowfall
- fx_46
- fx_gather_magic
- fx_attack_result_text
- fx_small_gold_sparkle
- fx_flashing_box_shockwave
- fx_balloon
- fx_floating_rock
- fx_chomp_drop
- fx_quizmo_stage
- fx_radiating_energy_orb
- fx_quizmo_answer
- fx_motion_blur_flame
- fx_energy_orb_wave
- fx_merlin_house_stars
- fx_quizmo_audience
- fx_butterflies
- fx_stat_change
- fx_snaking_static
- fx_thunderbolt_ring
- fx_squirt
- fx_water_block
- fx_waterfall
- fx_water_fountain
- fx_underwater
- fx_lightning_bolt
- fx_water_splash
- fx_snowman_doll
- fx_fright_jar
- fx_stop_watch
- fx_63
- fx_throw_spiny
- fx_65
- fx_tubba_heart_attack
- fx_whirlwind
- fx_red_impact
- fx_floating_cloud_puff
- fx_6A
- fx_energy_in_out
- fx_tattle_window
- fx_shiny_flare
- fx_huff_puff_breath
- fx_cold_breath
- fx_embers
- fx_hieroglyphs
- fx_misc_particles
- fx_static_status
- fx_moving_cloud
- fx_75
- fx_76
- fx_firework_rocket
- fx_peach_star_beam
- fx_chapter_change
- fx_ice_shard
- fx_spirit_card
- fx_lil_oink
- fx_something_rotating
- fx_breaking_junk
- fx_partner_buff
- fx_quizmo_assistant
- fx_ice_pillar
- fx_sun
- fx_star_spirits_energy
- fx_pink_sparkles
- fx_star_outline
- fx_86

View File

@ -34,6 +34,38 @@ segments:
start: 0
- [0x40, bin]
- name: evt
type: code
dir: evt
start: 0xE61D0
vram: 0x802C6000
# follows_vram: world_use_item # TODO this causes the vram to be wrong
subsegments:
- [auto, c, script_list]
- [auto, c, evt]
- [auto, c, map_api]
- [auto, c, cam_api]
- [auto, c, model_api]
- [auto, c, npc_api]
- [auto, c, msg_api]
- [auto, c, player_api]
- [auto, c, virtual_entity]
- [auto, c, f8f60_len_1560]
- [auto, c, fa4c0_len_3bf0]
- [auto, c, fx_api]
- [auto, c, demo_api]
- [auto, pm_effect_loads, effect_loads]
- name: engine4
type: code
start: 0x100910
vram: 0x802E2020
follows_vram: evt
subsegments:
- [auto, c, sprite]
- [auto, c, 101b90_len_8f0]
- [0x1040F0, bin]
- type: group
dir: charset
vram: 0
@ -465,6 +497,10 @@ segments:
- [0x2705A0, bin]
- [0x33A930, pm_sprite_shading_profiles, sprite_shading_profiles]
- [0x33B7A0, bin]
- type: code
dir: world/partner
name: world_partner_goombario

View File

@ -4,8 +4,11 @@ set_time_freeze_mode = 0x80027008;
get_time_freeze_mode = 0x80027110;
start_rumble = 0x80028E88;
length2D = 0x80028F70;
_heap_create = 0x80028FB0;
_heap_malloc = 0x80028FEC;
_heap_malloc_tail = 0x800290E4;
_heap_free = 0x8002919C;
_heap_realloc = 0x80029244;
cosine = 0x80029354;
sign = 0x80029430;
mem_clear = 0x80029580;
@ -15,6 +18,7 @@ dma_copy = 0x800296BC;
rand_float = 0x800298B4;
rand_int = 0x8002997C;
signF = 0x800299FC;
round = 0x80029A44;
clamp_angle = 0x80029AA4;
get_clamped_angle_diff = 0x80029BA8;
atan2 = 0x80029C00;
@ -45,6 +49,7 @@ set_curtain_scale_goal = 0x8002C1EC;
set_curtain_draw_callback = 0x8002C214;
set_curtain_fade = 0x8002C234;
create_cameras_a = 0x8002E214;
set_cam_viewport = 0x8002E634;
get_screen_coords = 0x8002E858;
set_game_mode = 0x80033810;
get_game_mode = 0x80033848;
@ -55,6 +60,7 @@ state_init_intro = 0x80036550;
clear_npcs = 0x800389AC;
create_basic_npc = 0x80038D34;
create_standard_npc = 0x80038D54;
free_npc_by_index = 0x80038D90;
free_npc = 0x80038EBC;
get_npc_by_index = 0x80038FCC;
npc_do_other_npc_collision = 0x800394FC;
@ -65,12 +71,14 @@ get_npc_unsafe = 0x8003AFDC;
get_npc_safe = 0x8003B038;
enable_npc_shadow = 0x8003B090;
disable_npc_shadow = 0x8003B0EC;
set_npc_sprite = 0x8003B14C;
enable_npc_blur = 0x8003B214;
disable_npc_blur = 0x8003B29C;
set_npc_yaw = 0x8003B830;
npc_set_palswap_mode_A = 0x8003B8C0;
npc_set_palswap_1 = 0x8003B93C;
npc_set_palswap_2 = 0x8003B954;
npc_set_decoration = 0x8003C8C8;
npc_set_imgfx_params = 0x8003DB14;
spawn_surface_effects = 0x8003DB50;
init_encounter_status = 0x8003E828;
@ -150,6 +158,8 @@ snd_ambient_80055760 = 0x80055D40;
snd_ambient_stop_all = 0x80055DAC;
snd_ambient_play_only = 0x80055E28;
snd_song_set_playback_rate = 0x80056318;
bgm_poll_music_events = 0x8005666C;
bgm_flush_music_events = 0x80056688;
audio_set_stereo = 0x8005673C;
audio_set_mono = 0x80056760;
clear_effect_data = 0x8005A27C;
@ -160,13 +170,16 @@ get_current_map_settings = 0x8005B308;
get_map_IDs_by_name = 0x8005B318;
load_asset_by_name = 0x8005B408;
initialize_collision = 0x8005B6B4;
parent_collider_to_model = 0x8005BEA0;
update_collider_transform = 0x8005C144;
get_collider_flags = 0x8005C4C8;
get_collider_center = 0x8005C530;
test_ray_colliders = 0x8005D3F0;
test_ray_zones = 0x8005D844;
npc_follow_init = 0x8005E5EC;
npc_update_npc_tracking = 0x8005E6F4;
npc_follow_npc = 0x8005E84C;
nuPiReadRom = 0x8005FB30;
osVirtualToPhysical = 0x80062D00;
sqrtf = 0x80062D60;
guFrustumF = 0x80062DA0;
@ -177,7 +190,9 @@ guPerspectiveF = 0x80064A00;
guPositionF = 0x80064D80;
guPosition = 0x80064F58;
sins = 0x80065460;
bcopy = 0x800654C0;
sprintf = 0x80066360;
guMtxIdent = 0x800682C0;
guMtxIdentF = 0x80068320;
guMtxF2L = 0x80068380;
guMtxL2F = 0x80068400;
@ -186,6 +201,7 @@ guScale = 0x80068580;
guScaleF = 0x80068640;
guTranslate = 0x800686A0;
guTranslateF = 0x80068780;
guMtxXFML = 0x80068860;
guMtxXFMF = 0x800688F0;
guRotateF = 0x800689A0;
guRotate = 0x80068B00;
@ -201,6 +217,7 @@ gSaveSlotMetadata = 0x80073D14;
gSaveSlotHasData = 0x80073D74;
EnemyNpcHit = 0x80074310;
EnemyNpcDefeat = 0x8007443C;
gEffectTable = 0x8007B5B0;
HES_Item_Unused_08B = 0x8007E698;
HES_Item_Unused_08B_disabled = 0x8007E6C8;
HES_Item_Unused_08C = 0x8007E6F8;
@ -215,7 +232,9 @@ gMoveTable = 0x8008B400;
gAreas = 0x8008F890;
EVS_800936C0 = 0x8008FA60;
EVS_NpcHitRecoil = 0x8008FA7C;
timeFreezeMode = 0x800969AC;
nuGfxZBuffer = 0x800969B0;
mdl_currentModelTreeNodeInfo = 0x800969C8;
gCurrentCamID = 0x80096A0C;
nuGfxCfb_ptr = 0x80096A24;
gOverrideFlags = 0x80096A28;
@ -226,6 +245,8 @@ gCurrentEncounter = 0x800AF5E0;
gCameras = 0x800B0460;
D_800B32E0 = 0x800B19C0;
D_800B3AE0 = 0x800B21C0;
gCollisionData = 0x800B29C0;
gZoneCollisionData = 0x800D5928;
wMapHitName = 0x800D5938;
wMapShapeName = 0x800D5988;
D_800D95E8 = 0x800D5D58;
@ -253,8 +274,11 @@ disable_player_static_collisions = 0x800DC884;
enable_player_static_collisions = 0x800DC8B0;
disable_player_input = 0x800DC8E8;
enable_player_input = 0x800DC914;
func_800E01DC = 0x800DC94C;
can_trigger_loading_zone = 0x800DEE34;
move_player = 0x800DEEE8;
gravity_use_fall_parms = 0x800DF7DC;
player_handle_floor_collider_type = 0x800DF8CC;
player_fall_distance = 0x800DFC48;
player_check_collision_below = 0x800DFC84;
phys_main_collision_below = 0x800E0EB4;
@ -267,14 +291,19 @@ start_bounce_b = 0x800E27FC;
peach_force_disguise_action = 0x800E2B14;
clear_player_data = 0x800E3B10;
get_player_data = 0x800E3CD4;
add_item = 0x800E3CE4;
get_item_count = 0x800E3D5C;
get_item_empty_count = 0x800E3D90;
find_item = 0x800E3DB4;
sort_items = 0x800E3E3C;
add_badge = 0x800E3EAC;
enforce_hpfp_limits = 0x800E3FDC;
hide_coin_counter_immediately = 0x800E5F20;
ShowCoinCounter = 0x800E5F50;
open_status_bar_long = 0x800E5FB8;
close_status_bar = 0x800E6010;
func_800E983C = 0x800E6094;
func_800E984C = 0x800E60A4;
status_bar_ignore_changes = 0x800E60EC;
status_bar_respond_to_changes = 0x800E611C;
func_800E98EC = 0x800E6144;
@ -289,14 +318,20 @@ decrement_status_bar_disabled = 0x800E6388;
increment_status_bar_disabled = 0x800E63AC;
sync_status_bar = 0x800E63C4;
add_coins = 0x800E6918;
add_star_points = 0x800E6980;
add_star_pieces = 0x800E69C8;
increment_max_SP = 0x800E6A0C;
set_max_SP = 0x800E6A30;
subtract_hp = 0x800E6B8C;
subtract_fortress_keys = 0x800E6C10;
get_fortress_key_count = 0x800E6C3C;
remove_consumable = 0x800E6CCC;
func_800EA52C = 0x800E6D7C;
partner_is_flying = 0x800E6DF4;
switch_to_partner = 0x800E79B8;
func_800EB2A4 = 0x800E7AF4;
partner_use_ability = 0x800E7B64;
partner_can_use_ability = 0x800E7C7C;
partner_get_enter_map_script = 0x800E7E88;
partner_kill_ability_script = 0x800E801C;
partner_suspend_ability_script = 0x800E8068;
@ -312,15 +347,19 @@ partner_put_away = 0x800EB208;
partner_init_get_out = 0x800EB514;
partner_get_out = 0x800EB538;
func_800EF300 = 0x800EBB50;
func_800EF314 = 0x800EBB64;
enable_partner_ai = 0x800EBB78;
partner_set_tether_distance = 0x800EBBE4;
partner_reset_tether_distance = 0x800EBBF4;
partner_set_goal_pos = 0x800EBC10;
func_800EF3D4 = 0x800EBC24;
func_800EF3E4 = 0x800EBC34;
func_800EF43C = 0x800EBC8C;
partner_clear_player_tracking = 0x800EBCAC;
partner_force_player_flip_done = 0x800EBD30;
partner_enable_input = 0x800EBE50;
partner_disable_input = 0x800EBE78;
handle_floor_behavior = 0x800EC558;
hide_popup_menu = 0x800EDC00;
destroy_popup_menu = 0x800EDD88;
create_standard_popup_menu = 0x800F1270;
@ -328,6 +367,7 @@ draw_box = 0x800F1710;
gPlayerStatusPtr = 0x800F3F60;
wPartnerHudScripts = 0x800F4330;
wDisabledPartnerHudScripts = 0x800F4370;
gPartnerAnimations = 0x800F4778;
HES_AnimatedHandPointer = 0x80102D18;
HES_FPCost = 0x80105928;
HES_FPCost_de = 0x80105A88;
@ -405,24 +445,34 @@ set_standard_shadow_scale = 0x8011135C;
clear_model_data = 0x80114844;
get_model_from_list_index = 0x80119830;
get_model_list_index_from_tree_index = 0x80119B10;
get_transform_group_index = 0x80119B90;
get_model_center_and_size = 0x80119BEC;
get_transform_group = 0x80119CC0;
mdl_make_transform_group = 0x80119E7C;
enable_transform_group = 0x8011A0D0;
disable_transform_group = 0x8011A160;
clone_model = 0x8011A1F0;
set_model_group_visibility = 0x8011A2C0;
func_8011B950 = 0x8011A450;
enable_world_fog = 0x8011A650;
disable_world_fog = 0x8011A664;
set_world_fog_dist = 0x8011A674;
set_world_fog_color = 0x8011A688;
set_tex_panner = 0x8011A714;
set_main_pan_u = 0x8011A71C;
set_main_pan_v = 0x8011A734;
set_aux_pan_u = 0x8011A74C;
set_aux_pan_v = 0x8011A764;
set_mdl_custom_gfx_set = 0x8011A77C;
set_custom_gfx = 0x8011A7B4;
set_custom_gfx_builders = 0x8011A7D0;
set_background_color_blend = 0x8011A95C;
get_background_color_blend = 0x8011A980;
set_model_fog_color_parameters = 0x8011A9B4;
get_model_fog_color_parameters = 0x8011AA14;
set_model_env_color_parameters = 0x8011AA98;
get_model_env_color_parameters = 0x8011AAD4;
mdl_make_local_vertex_copy = 0x8011AC64;
mdl_get_copied_vertices = 0x8011ADB0;
mdl_get_copied_gfx = 0x8011ADEC;
mdl_project_tex_coords = 0x8011AE2C;
@ -433,25 +483,49 @@ mdl_set_all_fog_mode = 0x8011C32C;
clear_render_tasks = 0x8011C390;
queue_render_task = 0x8011C410;
clear_animator_list = 0x8011CD24;
delete_model_animator = 0x8011CF38;
create_model_animator = 0x8011CFB8;
update_model_animator = 0x8011D3BC;
update_model_animator_with_transform = 0x8011D554;
render_animated_model = 0x8011DE04;
get_animator_node_for_tree_index = 0x8011EA74;
get_animator_node_with_id = 0x8011EA98;
get_animator_by_index = 0x8011EAE0;
play_model_animation = 0x8011EC48;
play_model_animation_starting_from = 0x8011EC98;
load_model_animator_tree = 0x8011EEAC;
load_mesh_animator_tree = 0x8011EF74;
clear_entity_models = 0x8011F6B0;
load_entity_model = 0x8011F7E0;
ALT_load_entity_model = 0x8011F8E4;
exec_entity_model_commandlist = 0x8011FA04;
draw_entity_model_A = 0x801207E8;
draw_entity_model_E = 0x80120D88;
set_entity_model_render_command_list = 0x8012187C;
get_entity_model = 0x801218DC;
free_entity_model_by_index = 0x801218FC;
set_entity_model_flags = 0x801219E8;
clear_entity_model_flags = 0x80121A24;
enable_entity_fog = 0x80121AEC;
set_entity_fog_dist = 0x80121B10;
set_entity_fog_color = 0x80121B28;
clear_worker_list = 0x80121BB8;
create_worker_world = 0x80121C58;
create_worker_frontUI = 0x80121D3C;
create_worker_backUI = 0x80121E20;
free_worker = 0x801220C0;
get_worker = 0x8012213C;
clear_printers = 0x80122174;
load_font = 0x80122234;
dma_load_msg = 0x80124314;
msg_get_printer_for_msg = 0x80124420;
msg_printer_load_msg = 0x80124588;
msg_printer_set_origin_pos = 0x801245D8;
cancel_message = 0x80124628;
set_message_images = 0x8012464C;
set_message_msg = 0x8012465C;
set_message_value = 0x80124708;
close_message = 0x80124790;
msg_get_print_char_width = 0x801247A4;
get_msg_properties = 0x80124A88;
get_msg_width = 0x80124F94;
@ -465,6 +539,8 @@ get_item_entity = 0x8012FAF8;
clear_item_entity_data = 0x8012FB90;
make_item_entity = 0x8012FF94;
make_item_entity_nodelay = 0x80130634;
make_item_entity_at_player = 0x801306A0;
remove_item_entity_by_index = 0x8013259C;
test_item_entity_position = 0x80132B68;
set_item_entity_flags = 0x80132CE8;
clear_item_entity_flags = 0x80132D28;
@ -481,6 +557,8 @@ clear_screen_overlays = 0x80136CA8;
set_map_transition_effect = 0x80136E40;
update_exit_map_screen_overlay = 0x80136E4C;
draw_prev_frame_buffer_at_screen_pos = 0x80137928;
imgfx_init = 0x80138F1C;
func_8013A4D0 = 0x80139070;
imgfx_get_free_instances = 0x801392A4;
imgfx_release_instance = 0x801393F4;
imgfx_update = 0x8013963C;
@ -503,12 +581,24 @@ hud_element_set_tint = 0x80143AAC;
hud_element_create_transform_A = 0x80143AD8;
hud_element_set_transform_rotation = 0x80143DD4;
clear_saved_variables = 0x80143ED0;
clear_global_flag = 0x80143F90;
set_global_flag = 0x80144000;
get_global_flag = 0x8014406C;
set_global_byte = 0x801440D0;
get_global_byte = 0x801440E8;
clear_area_flag = 0x801440FC;
set_area_flag = 0x80144150;
get_area_flag = 0x801441A0;
set_area_byte = 0x801441E8;
get_area_byte = 0x80144200;
clear_trigger_data = 0x80144230;
create_trigger = 0x8014431C;
delete_trigger = 0x801447A4;
is_another_trigger_bound = 0x8014481C;
get_trigger_by_id = 0x80144880;
reset_background_settings = 0x801449A8;
enable_background_wave = 0x80145DBC;
play_ambient_sounds = 0x80145F18;
basic_window_update = 0x80146024;
basic_hidden_window_update = 0x80146124;
update_window_hierarchy = 0x80146920;
@ -517,7 +607,9 @@ set_window_update = 0x80146A2C;
setup_pause_menu_tab = 0x80146AE0;
clear_sprite_shading_data = 0x80146BF0;
sprite_shading_set_light_source = 0x80146D04;
create_shading_palette = 0x80146D74;
sfx_adjust_env_sound_pos = 0x8014859C;
snd_stop_tracking_env_sound_pos = 0x8014861C;
sfx_play_sound_with_params = 0x80148668;
sfx_stop_sound = 0x8014881C;
sfx_play_sound = 0x80148864;
@ -526,12 +618,16 @@ sfx_play_sound_at_npc = 0x801488B8;
sfx_play_sound_at_position = 0x8014890C;
sfx_get_spatialized_sound_params = 0x801489B4;
bgm_set_song = 0x801494C8;
func_8014A964 = 0x80149514;
bgm_adjust_proximity = 0x80149604;
bgm_set_track_volumes = 0x801496BC;
bgm_clear_track_volumes = 0x80149710;
bgm_set_variation = 0x80149764;
bgm_init_music_players = 0x801497B8;
func_8014AD40 = 0x801498F0;
bgm_pop_song = 0x80149954;
bgm_push_song = 0x801499A8;
bgm_pop_battle_song = 0x80149A1C;
bgm_push_battle_song = 0x80149AA8;
bgm_set_battle_song = 0x80149B3C;
MessagePlural = 0x8014AE40;
@ -541,13 +637,14 @@ gCurrentLanguage = 0x8014AE4C;
gWindowStyles = 0x8014DD20;
gCurrentModels = 0x8014FE9C;
gBackgroundFogModePtr = 0x8014FEC0;
gCurrentRoomDoorSounds = 0x8014FED8;
gEntityHideMode = 0x8014FEE0;
gSpriteShadingProfile = 0x8014FEF8;
gCurrentDoorSounds = 0x8014FF10;
gMusicSettings = 0x801586B0;
gWindows = 0x80158910;
gCollisionStatus = 0x80159110;
gBackgroundImage = 0x80200000;
interp_value_with_easing = 0x802410E4;
UseBattleCamPreset = 0x8024E5BC;
UseBattleCamPresetImmediately = 0x8024E604;
SetBattleCamParam = 0x8024E6E8;
@ -955,376 +1052,6 @@ Entity_ArrowSign = 0x802BCD9C;
Entity_BoardedFloor = 0x802BCE84;
Entity_BombableRock = 0x802BCF00;
Entity_BombableRock2 = 0x802BCF24;
clear_script_list = 0x802C61DC;
start_script = 0x802C63E0;
kill_script_by_ID = 0x802C70AC;
does_script_exist = 0x802C7164;
set_script_timescale = 0x802C71E0;
bind_trigger_1 = 0x802C72A8;
get_script_by_id = 0x802C77A8;
DeleteTrigger = 0x802C9824;
evt_get_variable = 0x802CAABC;
evt_set_variable = 0x802CB098;
evt_get_float_variable = 0x802CB42C;
evt_set_float_variable = 0x802CB640;
TranslateModel = 0x802CBB60;
RotateModel = 0x802CBC64;
ScaleModel = 0x802CBD88;
CloneModel = 0x802CBF28;
GetModelCenter = 0x802CBF80;
SetTexPanner = 0x802CC000;
SetModelCustomGfx = 0x802CC0FC;
SetModelTexVariant = 0x802CC1A4;
EnableTexPanning = 0x802CC208;
EnableModel = 0x802CC288;
SetGroupVisibility = 0x802CC308;
SetTexPanOffset = 0x802CC364;
SetCustomGfx = 0x802CC428;
SetCustomGfxBuilders = 0x802CC4A0;
SetModelFlags = 0x802CC518;
MakeTransformGroup = 0x802CC71C;
TranslateGroup = 0x802CC7B4;
RotateGroup = 0x802CC8D8;
ScaleGroup = 0x802CCA1C;
EnableGroup = 0x802CCB98;
MakeLocalVertexCopy = 0x802CCC70;
ModifyColliderFlags = 0x802CCDCC;
ResetFromLava = 0x802CCED8;
GetColliderCenter = 0x802CD0AC;
ParentColliderToModel = 0x802CD114;
UpdateColliderTransform = 0x802CD188;
SetZoneEnabled = 0x802CD254;
GotoMap = 0x802CD400;
GotoMapSpecial = 0x802CD420;
GetEntryID = 0x802CD460;
GetMapID = 0x802CD490;
GetLoadType = 0x802CD4C0;
SetRenderMode = 0x802CD4F4;
PlaySoundAtModel = 0x802CD558;
PlaySoundAtCollider = 0x802CD614;
SetCamEnabled = 0x802CD6C0;
SetCamFlag80 = 0x802CD774;
SetCamPerspective = 0x802CD828;
func_802CA988 = 0x802CD988;
SetCamViewport = 0x802CDB18;
func_802CABE8 = 0x802CDBE8;
SetCamBGColor = 0x802CDD98;
func_802CAE50 = 0x802CDE50;
SetCamTarget = 0x802CDF2C;
InterpCamTargetPos = 0x802CE008;
ShakeCam = 0x802CE2A8;
exec_ShakeCam1 = 0x802CE56C;
SetCamLeadPlayer = 0x802CE680;
PanToTarget = 0x802CE79C;
UseSettingsFrom = 0x802CE860;
LoadSettings = 0x802CE9F8;
SetCamType = 0x802CEAB4;
SetCamPitch = 0x802CEB48;
SetCamDistance = 0x802CEBE4;
SetCamPosA = 0x802CEC58;
SetCamPosB = 0x802CECF4;
SetCamPosC = 0x802CED90;
SetPanTarget = 0x802CEE2C;
SetCamSpeed = 0x802CEEF0;
GetCamType = 0x802CEF64;
GetCamPitch = 0x802CEFF4;
GetCamDistance = 0x802CF084;
GetCamPosA = 0x802CF0F4;
GetCamPosB = 0x802CF184;
GetCamPosition = 0x802CF2A4;
WaitForCam = 0x802CF354;
SetCamProperties = 0x802CF3EC;
AdjustCam = 0x802CF660;
ResetCam = 0x802CF8C8;
InitAnimatedModels = 0x802CFCB0;
LoadAnimatedModel = 0x802CFCEC;
PlayModelAnimation = 0x802CFE6C;
SetAnimatedModelRootPosition = 0x802CFFE4;
GetAnimatedModelRootPosition = 0x802D0090;
SetAnimatedModelRenderMode = 0x802D0348;
DeleteAnimatedModel = 0x802D03C0;
SetAnimatorFlags = 0x802D0418;
GetAnimatedNodePosition = 0x802D05C0;
GetAnimatedNodeRotation = 0x802D06E0;
GetAnimatedPositionByTreeIndex = 0x802D07D8;
GetAnimatedRotationByTreeIndex = 0x802D08F8;
resolve_npc = 0x802D0AC0;
CreateNpc = 0x802D0BA4;
DeleteNpc = 0x802D0C1C;
GetNpcPointer = 0x802D0C58;
SetNpcPos = 0x802D0CB0;
SetNpcRotation = 0x802D0DB0;
SetNpcRotationPivot = 0x802D0E68;
SetNpcScale = 0x802D0ED4;
SetNpcCollisionSize = 0x802D0F8C;
SetNpcSpeed = 0x802D101C;
SetNpcJumpscale = 0x802D1088;
SetNpcAnimation = 0x802D10F4;
GetNpcAnimation = 0x802D1160;
SetNpcAnimationSpeed = 0x802D11C0;
NpcMoveTo = 0x802D122C;
NpcJump0 = 0x802D16C4;
NpcJump1 = 0x802D16E0;
NpcFlyTo = 0x802D16FC;
GetNpcYaw = 0x802D1A10;
SetNpcYaw = 0x802D1A84;
InterpNpcYaw = 0x802D1B04;
NpcFacePlayer = 0x802D1CC8;
NpcFaceNpc = 0x802D1E80;
SetNpcFlagBits = 0x802D2060;
GetNpcPos = 0x802D20F4;
SetNpcSprite = 0x802D2208;
EnableNpcShadow = 0x802D2268;
EnableNpcBlur = 0x802D22EC;
ClearPartnerMoveHistory = 0x802D2370;
DisablePartnerAI = 0x802D24E8;
EnablePartnerAI = 0x802D252C;
func_802CF56C = 0x802D256C;
BringPartnerOut = 0x802D25B8;
PutPartnerAway = 0x802D2988;
GetCurrentPartnerID = 0x802D2C74;
PartnerCanUseAbility = 0x802D2CA0;
PartnerIsFlying = 0x802D2CE8;
SetNpcImgFXParams = 0x802D2D30;
SetNpcImgFXFlags = 0x802D2E2C;
SetNpcPaletteSwapMode = 0x802D2E80;
SetNpcPaletteSwapLower = 0x802D2EEC;
SetNpcPaletteSwapping = 0x802D2FC0;
SetNpcDecoration = 0x802D3118;
PlaySoundAtNpc = 0x802D31AC;
SetNpcRenderMode = 0x802D3244;
SpeakToPlayer = 0x802D32B0;
EndSpeech = 0x802D32CC;
ContinueSpeech = 0x802D32E8;
SpeakToNpc = 0x802D3304;
ShowMessageAtScreenPos = 0x802D3894;
ShowMessageAtWorldPos = 0x802D395C;
CloseMessage = 0x802D3A98;
SwitchMessage = 0x802D3AFC;
ShowChoice = 0x802D3B6C;
CloseChoice = 0x802D3BF8;
CancelMessage = 0x802D3C20;
cancel_current_message = 0x802D3C48;
SetMessageText = 0x802D3CEC;
SetMessageValue = 0x802D3D44;
HidePlayerShadow = 0x802D3DA0;
DisablePlayerPhysics = 0x802D3DE4;
DisablePlayerInput = 0x802D3E28;
SetPlayerPos = 0x802D3EF0;
SetPlayerSpeed = 0x802D4024;
SetPlayerJumpscale = 0x802D4054;
SetPlayerAnimation = 0x802D4084;
SetPlayerActionState = 0x802D40D8;
PlayerMoveTo = 0x802D4134;
func_802D1270 = 0x802D4270;
PlayerJump = 0x802D48E8;
PlayerJump1 = 0x802D4904;
PlayerJump2 = 0x802D4920;
InterpPlayerYaw = 0x802D493C;
PlayerFaceNpc = 0x802D4B04;
GetPlayerTargetYaw = 0x802D4D28;
SetPlayerFlagBits = 0x802D4D60;
GetPlayerActionState = 0x802D4DD0;
GetPlayerPos = 0x802D4DFC;
GetPlayerAnimation = 0x802D4E94;
FullyRestoreHPandFP = 0x802D4EC0;
FullyRestoreSP = 0x802D4EE0;
EnablePartner = 0x802D4EFC;
DisablePartner = 0x802D4F38;
UseExitHeading = 0x802D516C;
WaitForPlayerTouchingFloor = 0x802D544C;
func_802D2484 = 0x802D5484;
IsPlayerOnValidFloor = 0x802D549C;
WaitForPlayerMoveToComplete = 0x802D54F4;
WaitForPlayerInputEnabled = 0x802D5508;
UpdatePlayerImgFX = 0x802D5520;
SetPlayerImgFXFlags = 0x802D586C;
FacePlayerTowardPoint = 0x802D5884;
DisablePulseStone = 0x802D5AA8;
GetPartnerInUse = 0x802D5B0C;
ForceUsePartner = 0x802D5B50;
InterruptUsePartner = 0x802D5B6C;
Disable8bitMario = 0x802D5B88;
func_802D2C14 = 0x802D5C14;
PlaySoundAtPlayer = 0x802D5CD8;
InitVirtualEntityList = 0x802D6398;
CreateVirtualEntity = 0x802D6474;
DeleteVirtualEntity = 0x802D6624;
SetVirtualEntityPosition = 0x802D66E0;
GetVirtualEntityPosition = 0x802D678C;
SetVirtualEntityRotation = 0x802D6840;
SetVirtualEntityScale = 0x802D68EC;
SetVirtualEntityMoveSpeed = 0x802D6998;
SetVirtualEntityJumpGravity = 0x802D69FC;
VirtualEntityMoveTo = 0x802D6A60;
VirtualEntityJumpTo = 0x802D6C58;
SetVirtualEntityFlags = 0x802D6F74;
virtual_entity_create = 0x802D720C;
virtual_entity_set_pos = 0x802D7364;
virtual_entity_set_scale = 0x802D73AC;
virtual_entity_delete_by_index = 0x802D73F4;
MakeLerp = 0x802D75B0;
UpdateLerp = 0x802D762C;
RandInt = 0x802D76B0;
GetAngleBetweenNPCs = 0x802D7708;
GetAngleToNPC = 0x802D77B4;
GetAngleToPlayer = 0x802D7830;
AwaitPlayerApproach = 0x802D78AC;
IsPlayerWithin = 0x802D7964;
AwaitPlayerLeave = 0x802D7A5C;
AddVectorPolar = 0x802D7B14;
func_802D4D14 = 0x802D7D14;
func_802D4D88 = 0x802D7D88;
LoadPath = 0x802D8430;
GetNextPathPos = 0x802D8524;
GetDist2D = 0x802D8770;
SetTimeFreezeMode = 0x802D8830;
ModifyGlobalOverrideFlags = 0x802D885C;
SetValueByRef = 0x802D88E0;
GetValueByRef = 0x802D893C;
EnableWorldStatusBar = 0x802D8998;
ClampAngleFloat = 0x802D8AB4;
GetLanguage = 0x802D8B04;
FadeOutMusic = 0x802D8D00;
SetMusicTrack = 0x802D8D6C;
FadeInMusic = 0x802D8E14;
EnableMusicProximityMix = 0x802D8F00;
AdjustMusicProximityMix = 0x802D8F48;
SetMusicTrackVolumes = 0x802D8FC4;
PopSong = 0x802D8FF8;
PushSong = 0x802D9018;
ClearAmbientSounds = 0x802D9108;
PlayAmbientSounds = 0x802D913C;
PlaySound = 0x802D9170;
PlaySoundWithVolume = 0x802D919C;
PlaySoundAt = 0x802D91FC;
StopSound = 0x802D92D8;
func_802D62E4 = 0x802D9304;
UseDoorSounds = 0x802D9334;
UseRoomDoorSounds = 0x802D9360;
PlaySoundAtF = 0x802D938C;
ShowKeyChoicePopup = 0x802D9440;
ShowConsumableChoicePopup = 0x802D965C;
RemoveKeyItemAt = 0x802D9878;
RemoveItemAt = 0x802D98AC;
AddKeyItem = 0x802D98E8;
CloseChoicePopup = 0x802D9974;
HasKeyItem = 0x802D99BC;
FindKeyItem = 0x802D9A34;
AddItem = 0x802D9AB8;
FindItem = 0x802D9B38;
RemoveItem = 0x802D9BBC;
MakeItemEntity = 0x802D9CE0;
DropItemEntity = 0x802D9DE0;
DropResizableItemEntity = 0x802D9EE0;
RemoveItemEntity = 0x802D9FEC;
AddBadge = 0x802DA018;
RemoveBadge = 0x802DA070;
SetItemPos = 0x802DA0F0;
SetItemFlags = 0x802DA1B4;
SetItemAlpha = 0x802DA23C;
AddCoin = 0x802DA298;
AddStarPieces = 0x802DA310;
GetItemPower = 0x802DA34C;
ShowGotItem = 0x802DA3C4;
show_start_recovery_shimmer = 0x802DA480;
show_recovery_shimmer = 0x802DA4E0;
ShowStartRecoveryShimmer = 0x802DA540;
ShowRecoveryShimmer = 0x802DA5F8;
ShowEmote = 0x802DA8C0;
RemoveEffect = 0x802DAB04;
DismissEffect = 0x802DAB30;
DismissItemOutline = 0x802DAB64;
SetMotionBlurParams = 0x802DAD18;
ShowSweat = 0x802DAE28;
ShowSleepBubble = 0x802DB048;
SetSleepBubbleTimeLeft = 0x802DB268;
PlayEffect = 0x802DB2BC;
SetSpriteShading = 0x802DC720;
EnableSpriteShading = 0x802DCA5C;
GetDemoState = 0x802DCAB0;
DemoSetButtons = 0x802DCB54;
DemoJoystickXY = 0x802DCC30;
fx_big_smoke_puff = 0x802DCD20;
fx_landing_dust = 0x802DCF00;
fx_walking_dust = 0x802DCF60;
fx_star = 0x802DD260;
fx_emote = 0x802DD2C0;
fx_sparkles = 0x802DD320;
fx_shape_spell = 0x802DD380;
fx_gather_energy_pink = 0x802DD3E0;
fx_smoke_ring = 0x802DD560;
fx_damage_stars = 0x802DD5C0;
fx_explosion = 0x802DD620;
fx_lens_flare = 0x802DD680;
fx_flame = 0x802DD8C0;
fx_rising_bubble = 0x802DD9E0;
fx_ring_blast = 0x802DDA40;
fx_smoke_burst = 0x802DDB60;
fx_sweat = 0x802DDBC0;
fx_sleep_bubble = 0x802DDC20;
fx_stars_orbiting = 0x802DDE60;
fx_radial_shimmer = 0x802DDFE0;
fx_ending_decals = 0x802DE040;
fx_lightning = 0x802DE100;
fx_fire_breath = 0x802DE160;
fx_bulb_glow = 0x802DE340;
fx_effect_3D = 0x802DE3A0;
fx_fire_flower = 0x802DE460;
fx_recover = 0x802DE4C0;
fx_snowfall = 0x802DE6A0;
fx_effect_46 = 0x802DE700;
fx_floating_rock = 0x802DE940;
fx_quizmo_stage = 0x802DEA00;
fx_quizmo_answer = 0x802DEAC0;
fx_motion_blur_flame = 0x802DEB20;
fx_energy_orb_wave = 0x802DEB80;
fx_quizmo_audience = 0x802DEC40;
fx_stat_change = 0x802DED00;
fx_snaking_static = 0x802DED60;
fx_thunderbolt_ring = 0x802DEDC0;
fx_squirt = 0x802DEE20;
fx_water_block = 0x802DEE80;
fx_water_fountain = 0x802DEF40;
fx_underwater = 0x802DEFA0;
fx_lightning_bolt = 0x802DF000;
fx_water_splash = 0x802DF060;
fx_throw_spiny = 0x802DF240;
fx_effect_65 = 0x802DF2A0;
fx_floating_cloud_puff = 0x802DF420;
fx_energy_in_out = 0x802DF4E0;
fx_tattle_window = 0x802DF540;
fx_huff_puff_breath = 0x802DF600;
fx_cold_breath = 0x802DF660;
fx_misc_particles = 0x802DF780;
fx_static_status = 0x802DF7E0;
fx_moving_cloud = 0x802DF840;
fx_chapter_change = 0x802DFA20;
fx_ice_shard = 0x802DFA80;
fx_spirit_card = 0x802DFAE0;
fx_lil_oink = 0x802DFB40;
fx_quizmo_assistant = 0x802DFCC0;
fx_sun = 0x802DFD80;
fx_star_spirits_energy = 0x802DFDE0;
fx_star_outline = 0x802DFEA0;
D_802D9D70 = 0x802E0030;
D_802D9D71 = 0x802E0031;
StarShrineLightBeamAlpha = 0x802E0032;
spr_init_sprites = 0x802E3BD8;
spr_update_player_sprite = 0x802E3D6C;
spr_draw_player_sprite = 0x802E3F20;
set_player_imgfx_comp = 0x802E41C4;
set_player_imgfx_all = 0x802E42D8;
spr_get_player_raster_info = 0x802E4324;
spr_load_npc_sprite = 0x802E43CC;
spr_update_sprite = 0x802E458C;
spr_draw_npc_sprite = 0x802E46B8;
spr_free_sprite = 0x802E48C8;
set_npc_imgfx_comp = 0x802E4A60;
set_npc_imgfx_all = 0x802E4B74;
spr_get_comp_position = 0x802E4BBC;
spr_get_npc_raster_info = 0x802E4CB8;
spr_allocateBtlComponentsOnWorldHeap = 0x802E5804;
entity_upgrade_block_hide_content = 0x802EB990;
Entity_SavePoint = 0x802EFD18;
Entity_RedSwitch = 0x802EFEB0;
@ -1363,4 +1090,5 @@ Entity_BlueWarpPipe = 0x802F1280;
Entity_Signpost = 0x802F12DC;
gMsgCharsets = 0x802F18A8;
D_802F4560 = 0x802FA860;
heap_generalHead = 0x802FB800;
heap_spriteHead = 0x8034F800;

View File

@ -20,3 +20,4 @@ D_B0000000 = 0xB0000000;
D_B0000008 = 0xB0000008;
D_B0000010 = 0xB0000010;
fx_sun_undeclared = fx_sun;
sprite_shading_profiles_data_ROM_START = sprite_shading_profiles_ROM_START + 0x1D0;