This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
super_mario_64:function_list [2020/11/02 19:26] someone2639 [References] added decomp as reference |
super_mario_64:function_list [2023/08/23 03:57] (current) ZenonX correct entries of duplicated level script commands |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Function List ====== | ====== Function List ====== | ||
+ | This is a list of functions in Super Mario 64, and their prototypes. For using these functions with assembly hacking, refer to the [[:cpu_abi|CPU ABI]] page. | ||
+ | |||
^ Address ^ Function Name/Prototype ^ | ^ Address ^ Function Name/Prototype ^ | ||
| 04000040 | ipl3_entry | | | 04000040 | ipl3_entry | | ||
Line 500: | Line 502: | ||
| 8026A090 | ''void play_knockback_sound(struct MarioState *m);'' | | | 8026A090 | ''void play_knockback_sound(struct MarioState *m);'' | | ||
| 8026A12C | ''s32 lava_boost_on_wall(struct MarioState *m);'' | | | 8026A12C | ''s32 lava_boost_on_wall(struct MarioState *m);'' | | ||
- | | 8026A224 | ''s32 check_fall_damage_or_get_stuck(struct MarioState *m, u32 hardFallAction);'' | | + | | 8026A224 | ''s32 check_fall_damage(struct MarioState *m, u32 hardFallAction);'' | |
| 8026A400 | ''s32 check_kick_or_dive_in_air(struct MarioState *m);'' | | | 8026A400 | ''s32 check_kick_or_dive_in_air(struct MarioState *m);'' | | ||
| 8026A494 | ''s32 should_get_stuck_in_ground(struct MarioState *m);'' | | | 8026A494 | ''s32 should_get_stuck_in_ground(struct MarioState *m);'' | | ||
Line 1349: | Line 1351: | ||
| 8029E714 | ''s16 obj_turn_toward_object(struct Object *obj, struct Object *target, s16 angleIndex, s16 turnAmount);'' | | | 8029E714 | ''s16 obj_turn_toward_object(struct Object *obj, struct Object *target, s16 angleIndex, s16 turnAmount);'' | | ||
| 8029E8BC | ''void obj_set_parent_relative_pos(struct Object *obj, s16 relX, s16 relY, s16 relZ);'' | | | 8029E8BC | ''void obj_set_parent_relative_pos(struct Object *obj, s16 relX, s16 relY, s16 relZ);'' | | ||
- | | 8029E914 | ''void cur_obj_set_pos_to_home_with_debug(void);'' | | + | | 8029E914 | ''void obj_set_pos(struct Objec *obj, f32 x, f32 y, f32 z);'' | |
| 8029E96C | ''void obj_set_angle(struct Object *obj, s16 pitch, s16 yaw, s16 roll);'' | | | 8029E96C | ''void obj_set_angle(struct Object *obj, s16 pitch, s16 yaw, s16 roll);'' | | ||
| 8029E9AC | spawn_object_abs_with_rot | | | 8029E9AC | spawn_object_abs_with_rot | | ||
Line 1464: | Line 1466: | ||
| 802A1D7C | ''s32 cur_obj_detect_steep_floor(s16 steepAngleDegrees);'' | | | 802A1D7C | ''s32 cur_obj_detect_steep_floor(s16 steepAngleDegrees);'' | | ||
| 802A1F3C | ''s32 cur_obj_resolve_wall_collisions(void);'' | | | 802A1F3C | ''s32 cur_obj_resolve_wall_collisions(void);'' | | ||
- | | 802A20F4 | ''void cur_obj_update_floor_and_walls(void);'' | | + | | 802A20F4 | ''void cur_obj_update_floor(void);'' | |
| 802A21D4 | ''void cur_obj_update_floor_and_resolve_wall_collisions(s16 steepSlopeDegrees);'' | | | 802A21D4 | ''void cur_obj_update_floor_and_resolve_wall_collisions(s16 steepSlopeDegrees);'' | | ||
| 802A2320 | ''void cur_obj_update_floor_and_walls(void);'' | | | 802A2320 | ''void cur_obj_update_floor_and_walls(void);'' | | ||
Line 2150: | Line 2152: | ||
| 802C9B68 | ''void unload_object(struct Object *obj);'' | | | 802C9B68 | ''void unload_object(struct Object *obj);'' | | ||
| 802C9C00 | ''void deallocate_object(struct ObjectNode *freeList, struct ObjectNode *obj);'' | | | 802C9C00 | ''void deallocate_object(struct ObjectNode *freeList, struct ObjectNode *obj);'' | | ||
+ | | 802C9E5C | ''void snap_object_to_floor(struct Object *obj);'' | | ||
| 802C9F04 | create_object | | | 802C9F04 | create_object | | ||
| 802CA028 | ''void mark_obj_for_deletion(struct Object *obj);'' | | | 802CA028 | ''void mark_obj_for_deletion(struct Object *obj);'' | | ||
Line 3263: | Line 3266: | ||
| 8031C050 | m64_read_s16 | | | 8031C050 | m64_read_s16 | | ||
| 8031C080 | m64_read_compressed_u16 | | | 8031C080 | m64_read_compressed_u16 | | ||
- | | 8031C0C4 | ''#include "audio/seq_channel_layer_process_script.h"'' | | + | | 8031C0C4 | ''seq_channel_layer_process_script'' | |
| 8031CE54 | get_instrument | | | 8031CE54 | get_instrument | | ||
| 8031CFD4 | set_instrument | | | 8031CFD4 | set_instrument | | ||
Line 3617: | Line 3620: | ||
| 8037E388 | ''void level_cmd_exit_and_execute(void);'' | | | 8037E388 | ''void level_cmd_exit_and_execute(void);'' | | ||
| 8037E404 | ''void level_cmd_exit(void);'' | | | 8037E404 | ''void level_cmd_exit(void);'' | | ||
- | | 8037E47C | ''void level_cmd_sleep2(void);'' | | + | | 8037E47C | ''void level_cmd_sleep(void);'' | |
| 8037E4FC | ''void level_cmd_sleep2(void);'' | | | 8037E4FC | ''void level_cmd_sleep2(void);'' | | ||
- | | 8037E580 | ''void level_cmd_jump_and_link_if(void);'' | | + | | 8037E580 | ''void level_cmd_jump(void);'' | |
- | | 8037E5B8 | ''void level_cmd_jump_and_link_if(void);'' | | + | | 8037E5B8 | ''void level_cmd_jump_and_link(void);'' | |
| 8037E620 | ''void level_cmd_return(void);'' | | | 8037E620 | ''void level_cmd_return(void);'' | | ||
| 8037E650 | ''void level_cmd_jump_and_link_push_arg(void);'' | | | 8037E650 | ''void level_cmd_jump_and_link_push_arg(void);'' | | ||
Line 3629: | Line 3632: | ||
| 8037E8E8 | ''void level_cmd_jump_and_link_if(void);'' | | | 8037E8E8 | ''void level_cmd_jump_and_link_if(void);'' | | ||
| 8037E988 | ''void level_cmd_skip_if(void);'' | | | 8037E988 | ''void level_cmd_skip_if(void);'' | | ||
- | | 8037EA18 | ''void level_cmd_skippable_nop(void);'' | | + | | 8037EA18 | ''void level_cmd_skip(void);'' | |
| 8037EA70 | ''void level_cmd_skippable_nop(void);'' | | | 8037EA70 | ''void level_cmd_skippable_nop(void);'' | | ||
- | | 8037EA98 | ''void level_cmd_call_loop(void);'' | | + | | 8037EA98 | ''void level_cmd_call(void);'' | |
| 8037EB04 | ''void level_cmd_call_loop(void);'' | | | 8037EB04 | ''void level_cmd_call_loop(void);'' | | ||
| 8037EB98 | ''void level_cmd_set_register(void);'' | | | 8037EB98 | ''void level_cmd_set_register(void);'' | |