diff --git a/include/enums.h b/include/enums.h index 77319f88b1..d92b5bc20c 100644 --- a/include/enums.h +++ b/include/enums.h @@ -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 { diff --git a/src/101b90_len_8f0.c b/src/101b90_len_8f0.c index 7c2edd050e..ccbc06080e 100644 --- a/src/101b90_len_8f0.c +++ b/src/101b90_len_8f0.c @@ -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; diff --git a/src/evt/demo_api.c b/src/evt/demo_api.c index 1a09c1a423..d460f626dd 100644 --- a/src/evt/demo_api.c +++ b/src/evt/demo_api.c @@ -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; diff --git a/src/evt/f8f60_len_1560.c b/src/evt/f8f60_len_1560.c index fa916d0d31..7476907b06 100644 --- a/src/evt/f8f60_len_1560.c +++ b/src/evt/f8f60_len_1560.c @@ -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 diff --git a/src/evt/script_list.c b/src/evt/script_list.c index f5dda44cc0..72914065af 100644 --- a/src/evt/script_list.c +++ b/src/evt/script_list.c @@ -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? diff --git a/src/pause/pause_main.c b/src/pause/pause_main.c index cde6942d5d..fa44aab125 100644 --- a/src/pause/pause_main.c +++ b/src/pause/pause_main.c @@ -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; diff --git a/tools/splat_ext/pm_effect_loads.py b/tools/splat_ext/pm_effect_loads.py index a2ff70eca5..14cec5c867 100644 --- a/tools/splat_ext/pm_effect_loads.py +++ b/tools/splat_ext/pm_effect_loads.py @@ -135,3 +135,6 @@ glabel fx_{name} ) return ret + + def should_split(self) -> bool: + return options.opts.is_mode_active(self.type) diff --git a/ver/pal/effects.yaml b/ver/pal/effects.yaml new file mode 100644 index 0000000000..6894949acd --- /dev/null +++ b/ver/pal/effects.yaml @@ -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 diff --git a/ver/pal/splat.yaml b/ver/pal/splat.yaml index cc1302e8d1..22ef5689e9 100644 --- a/ver/pal/splat.yaml +++ b/ver/pal/splat.yaml @@ -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 diff --git a/ver/pal/undefined_syms.txt b/ver/pal/undefined_syms.txt index 1511307974..5bee68d3d3 100644 --- a/ver/pal/undefined_syms.txt +++ b/ver/pal/undefined_syms.txt @@ -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; diff --git a/ver/pal/undefined_syms_auto.txt b/ver/pal/undefined_syms_auto.txt index bc83349029..2b2dc35db6 100644 --- a/ver/pal/undefined_syms_auto.txt +++ b/ver/pal/undefined_syms_auto.txt @@ -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;