extern bool g_smb1_want_reset; #define R0_ (*(uint8*)(g_ram+0x0)) #define R1_ (*(uint8*)(g_ram+0x1)) #define R2_ (*(uint8*)(g_ram+0x2)) #define R3_ (*(uint8*)(g_ram+0x3)) #define R4_ (*(uint8*)(g_ram+0x4)) #define R5_ (*(uint8*)(g_ram+0x5)) #define R6_ (*(uint8*)(g_ram+0x6)) #define R7_ (*(uint8*)(g_ram+0x7)) #define unused_byte_7E0008 (*(uint8*)(g_ram+0x8)) #define frame_counter (*(uint8*)(g_ram+0x9)) #define buttons_a_b (*(uint8*)(g_ram+0xA)) #define buttons_up_down (*(uint8*)(g_ram+0xB)) #define buttons_left_right (*(uint8*)(g_ram+0xC)) #define buttons_a_b_previous (*(uint8*)(g_ram+0xD)) #define override_player_xpos_flag (*(uint8*)(g_ram+0xE)) #define game_engine_subroutine (*(uint8*)(g_ram+0xF)) #define enemy_flag ((uint8*)(g_ram+0x10)) #define disable_sprite_oamreset_flag (*(uint8*)(g_ram+0x1B)) #define enemy_id ((uint8*)(g_ram+0x1C)) #define player_state (*(uint8*)(g_ram+0x28)) #define enemy_state ((uint8*)(g_ram+0x29)) #define fireball_state ((uint8*)(g_ram+0x33)) #define block_state ((uint8*)(g_ram+0x35)) #define misc_state ((uint8*)(g_ram+0x39)) #define screen_left_xpos16 (*(uint16*)(g_ram+0x42)) #define unused_block_y_pos (*(uint8*)(g_ram+0x44)) #define player_moving_dir (*(uint8*)(g_ram+0x46)) #define enemy_moving_dir ((uint8*)(g_ram+0x47)) #define title_screen_erase_file_process (*(uint8*)(g_ram+0x51)) #define splash_screen_display_timer (*(uint8*)(g_ram+0x52)) #define splash_screen_palette_animation_timer (*(uint8*)(g_ram+0x53)) #define splash_screen_palette_animation_index (*(uint8*)(g_ram+0x54)) #define splash_screen_display_mario_coin_shine_flag (*(uint8*)(g_ram+0x55)) #define title_screen_file_aselected_world (*(uint8*)(g_ram+0x56)) #define title_screen_file_bselected_world (*(uint8*)(g_ram+0x57)) #define title_screen_file_cselected_world (*(uint8*)(g_ram+0x58)) #define area_type (*(uint8*)(g_ram+0x5C)) #define obj_xspeed (*(RelPosForOffs*)(g_ram+0x5D)) #define obj_xpos_hi (*(RelPosForOffs*)(g_ram+0x78)) #define bridge_collapse_sfx_flag (*(uint8*)(g_ram+0x95)) #define bowser_var0096 (*(uint8*)(g_ram+0x96)) #define bowser_var0097 (*(uint8*)(g_ram+0x97)) #define tileset_graphics_type (*(uint8*)(g_ram+0x99)) #define play_sound_flag_var009a (*(uint8*)(g_ram+0x9A)) #define draw_level_preview_sprites_var009B (*(uint8*)(g_ram+0x9B)) #define screen_left_xpos16_b (*(uint16*)(g_ram+0x9C)) #define object_index (*(uint8*)(g_ram+0x9E)) #define object_index_upper_empty (*(uint8*)(g_ram+0x9F)) #define obj_yspeed (*(RelPosForOffs*)(g_ram+0xA0)) #define obj_ypos_hi (*(RelPosForOffs*)(g_ram+0xBB)) #define tempD8 (*(LongPtr*)(g_ram+0xD8)) #define area_data_addr_index (*(uint8*)(g_ram+0xDB)) #define tempDD (*(uint8*)(g_ram+0xDD)) #define tempDE (*(uint8*)(g_ram+0xDE)) #define tempDF (*(uint8*)(g_ram+0xDF)) #define tempE0 (*(uint8*)(g_ram+0xE0)) #define tempE1 (*(uint8*)(g_ram+0xE1)) #define tempE2 (*(uint8*)(g_ram+0xE2)) #define tempE3 (*(uint8*)(g_ram+0xE3)) #define tempE4 (*(uint8*)(g_ram+0xE4)) #define tempE5 (*(uint8*)(g_ram+0xE5)) #define tempE6 (*(uint8*)(g_ram+0xE6)) #define tempE7 (*(uint8*)(g_ram+0xE7)) #define tempE8 (*(uint8*)(g_ram+0xE8)) #define tempE9 (*(uint8*)(g_ram+0xE9)) #define tempEA (*(uint8*)(g_ram+0xEA)) #define tempEB (*(uint8*)(g_ram+0xEB)) #define tempEC (*(uint8*)(g_ram+0xEC)) #define tempED (*(uint8*)(g_ram+0xED)) #define tempEE (*(uint8*)(g_ram+0xEE)) #define tempEF (*(uint8*)(g_ram+0xEF)) #define tempF0 (*(uint8*)(g_ram+0xF0)) #define tempF1 (*(uint8*)(g_ram+0xF1)) #define tempF2 (*(uint8*)(g_ram+0xF2)) #define tempF3 (*(uint8*)(g_ram+0xF3)) #define tempF4 (*(uint8*)(g_ram+0xF4)) #define tempF5 (*(uint8*)(g_ram+0xF5)) #define tempF6 (*(uint8*)(g_ram+0xF6)) #define tempF7 (*(uint8*)(g_ram+0xF7)) #define tempF8 (*(uint8*)(g_ram+0xF8)) #define tempF9 (*(uint8*)(g_ram+0xF9)) #define area_data_ptr (*(LongPtr*)(g_ram+0xFA)) #define enemy_data_ptr (*(LongPtr*)(g_ram+0xFD)) #define area_parser_var2 (*(uint8*)(g_ram+0x109)) #define level_3_byte_object_flag (*(uint8*)(g_ram+0x10B)) #define flagpole_score_ypos_lo (*(uint8*)(g_ram+0x10D)) #define flagpole_score_sub_ypos (*(uint8*)(g_ram+0x10E)) #define flagpole_score (*(uint8*)(g_ram+0x10F)) #define floateynum_control ((uint8*)(g_ram+0x110)) #define score_spr_xpos_lo ((uint8*)(g_ram+0x11A)) #define score_spr_ypos_lo ((uint8*)(g_ram+0x124)) #define shell_chain_counter ((uint8*)(g_ram+0x12E)) #define floateynum_timer ((uint8*)(g_ram+0x138)) #define g_byte_7E0144 (*(uint8*)(g_ram+0x144)) #define digit_modifier ((uint8*)(g_ram+0x145)) #define bowser_var014B (*(uint8*)(g_ram+0x14B)) #define bowser_var014C (*(uint8*)(g_ram+0x14C)) #define wait_for_vblank (*(uint8*)(g_ram+0x154)) #define stack ((uint8*)(g_ram+0x155)) #define error_screen_palette_mirror (*(uint8*)(g_ram+0x200)) #define bowser_var0201 (*(uint8*)(g_ram+0x201)) #define player_facing_dir (*(uint8*)(g_ram+0x202)) #define enemy_data_a ((uint8*)(g_ram+0x203)) #define power_up_type (*(uint8*)(g_ram+0x20C)) #define fire_spr_hit_ground_flag ((uint8*)(g_ram+0x20D)) #define enemy_data_c ((uint8*)(g_ram+0x20F)) #define vertical_pipe_flag_var0218 (*(uint8*)(g_ram+0x218)) #define obj_xpos_lo (*(RelPosForOffs*)(g_ram+0x219)) #define vine_at_entrance_flag (*(uint8*)(g_ram+0x236)) #define obj_ypos_lo (*(RelPosForOffs*)(g_ram+0x237)) #define player_disable_auto_palette_update (*(uint8*)(g_ram+0x254)) #define player_sprattrib (*(uint8*)(g_ram+0x256)) #define enemy_sprattrib ((uint8*)(g_ram+0x257)) #define cannon_offset (*(uint8*)(g_ram+0x26A)) #define cannon_xpos_hi ((uint8*)(g_ram+0x26B)) #define cannon_xpos_lo ((uint8*)(g_ram+0x271)) #define cannon_ypos_lo ((uint8*)(g_ram+0x277)) #define cannon_timer ((uint8*)(g_ram+0x27D)) #define bowser_hit_points (*(uint8*)(g_ram+0x283)) #define stomp_chain_counter (*(uint8*)(g_ram+0x284)) #define graphics_upload_ptr (*(LongPtr*)(g_ram+0x285)) #define graphics_upload_size (*(uint16*)(g_ram+0x288)) #define graphics_upload_vramaddress (*(uint16*)(g_ram+0x28A)) #define vram_flag_028c (*(uint8*)(g_ram+0x28C)) #define vram_flag_028d (*(uint8*)(g_ram+0x28D)) #define vram_flag_028e (*(uint8*)(g_ram+0x28E)) #define player_graphics_pointer (*(LongPtr*)(g_ram+0x28F)) #define player_graphics_upload_size (*(uint16*)(g_ram+0x293)) #define player_vramaddress (*(uint16*)(g_ram+0x295)) #define draw_bubble_var3 (*(uint8*)(g_ram+0x2F7)) #define tileset_graphics_flag_var2f8 (*(uint8*)(g_ram+0x2F8)) #define bowser_timer_02f9 (*(uint8*)(g_ram+0x2F9)) #define bowser_xpos16 (*(uint16*)(g_ram+0x2FA)) #define bowser_enemy_slot_plus1 (*(uint8*)(g_ram+0x2FC)) #define some_xpos16_var02fd (*(uint16*)(g_ram+0x2FD)) #define player_entered_coin_heaven_flag (*(uint8*)(g_ram+0x2FF)) #define bridge_sprite_slot_exists_flag ((uint8*)(g_ram+0x300)) #define bridge_animation_frame ((uint8*)(g_ram+0x30D)) #define level_bridge_spr_xpos_lo ((uint8*)(g_ram+0x31A)) #define level_bridge_spr_animation_frame_timer ((uint8*)(g_ram+0x327)) #define bridge_segment_index ((uint8*)(g_ram+0x334)) #define browser_body_controls (*(uint8*)(g_ram+0x363)) #define bowser_feet_counter (*(uint8*)(g_ram+0x364)) #define bowser_movement_speed (*(uint8*)(g_ram+0x365)) #define bowser_orig_xpos (*(uint8*)(g_ram+0x366)) #define bowser_flame_timer_ctrl (*(uint8*)(g_ram+0x367)) #define browser_front_offset (*(uint8*)(g_ram+0x368)) #define bridge_collapse_offset (*(uint8*)(g_ram+0x369)) #define bowser_gfx_flag (*(uint8*)(g_ram+0x36A)) #define enemy_data_b ((uint8*)(g_ram+0x388)) #define vine_flag_offset (*(uint8*)(g_ram+0x398)) #define vine_height (*(uint8*)(g_ram+0x399)) #define vine_obj_offset ((uint8*)(g_ram+0x39A)) #define vinestart_y_pos (*(uint8*)(g_ram+0x39D)) #define bal_platform_alignment (*(uint8*)(g_ram+0x3A0)) #define platform_x_scroll (*(uint8*)(g_ram+0x3A1)) #define enemy_data_d ((uint8*)(g_ram+0x3A2)) #define rel_xpos_lo (*(RelPosStruct*)(g_ram+0x3AD)) #define rel_ypos (*(RelPosStruct*)(g_ram+0x3B8)) #define rel_xpos_hi (*(RelPosStruct*)(g_ram+0x3C1)) #define bowser_woozy_effect_animation_frame (*(uint8*)(g_ram+0x3CA)) #define bowser_feeling_woozy_flag (*(uint8*)(g_ram+0x3CB)) #define flagpole_player_xpos16 (*(uint16*)(g_ram+0x3CC)) #define mario_goal_walk_var03ce (*(uint8*)(g_ram+0x3CE)) #define mario_goal_walk_var03cf (*(uint8*)(g_ram+0x3CF)) #define offscreen_bits (*(RelPosStruct*)(g_ram+0x3D0)) #define spr_array_D ((uint8*)(g_ram+0x3D9)) #define block_orig_ypos ((uint8*)(g_ram+0x3E6)) #define block_bbuf_low ((uint8*)(g_ram+0x3E8)) #define block_metatile ((uint8*)(g_ram+0x3EA)) #define block_xpos_hi2 ((uint8*)(g_ram+0x3EC)) #define block_repflag ((uint8*)(g_ram+0x3EE)) #define spr_data_offset_ctrl (*(uint8*)(g_ram+0x3F0)) #define block_residual_counter_unused (*(uint8*)(g_ram+0x3F2)) #define block_orig_xpos_lo ((uint8*)(g_ram+0x3F3)) #define flagpole_timer_var03fa (*(uint8*)(g_ram+0x3FA)) #define flagpole_timer_var03fb (*(uint8*)(g_ram+0x3FB)) #define g_byte_7E0400 (*(uint8*)(g_ram+0x400)) #define obj_xpos_fract (*(RelPosForOffs*)(g_ram+0x401)) #define obj_sub_ypos (*(RelPosForOffs*)(g_ram+0x41C)) #define obj_sub_yspeed (*(RelPosForOffs*)(g_ram+0x43C)) #define max_left_speed (*(uint8*)(g_ram+0x45D)) #define max_right_speed (*(uint8*)(g_ram+0x463)) #define player_collision_bits (*(uint8*)(g_ram+0x480)) #define enemy_collision_bits ((uint8*)(g_ram+0x481)) #define player_hitbox_ctrl (*(uint8*)(g_ram+0x48F)) #define enemy_hitbox_ctrl ((uint8*)(g_ram+0x490)) #define fireball_hitbox_size_index ((uint8*)(g_ram+0x49A)) #define misc_boundboxctrl ((uint8*)(g_ram+0x49C)) #define level_data_map16_lo ((uint8*)(g_ram+0x500)) #define level_data_map16_hi ((uint8*)(g_ram+0x5D0)) #define block_buffer_column_pos (*(uint8*)(g_ram+0x6A0)) #define metatile_buffer ((uint8*)(g_ram+0x6A1)) #define hammer_enemy_offset ((uint8*)(g_ram+0x6AE)) #define misc_slot_index (*(uint8*)(g_ram+0x6B7)) #define g_byte_7E06BB (*(uint8*)(g_ram+0x6BB)) #define brick_coin_timer_flag (*(uint8*)(g_ram+0x6BC)) #define misc_collision_flag ((uint8*)(g_ram+0x6BE)) #define unused_06C9 (*(uint8*)(g_ram+0x6C9)) #define enemy_frenzy_buffer (*(uint8*)(g_ram+0x6CB)) #define secondary_hard_mode (*(uint8*)(g_ram+0x6CC)) #define enemy_frenzy_queue (*(uint8*)(g_ram+0x6CD)) #define fireball_counter (*(uint8*)(g_ram+0x6CE)) #define duplicate_obj_offset (*(uint8*)(g_ram+0x6CF)) #define lakitu_reappear_timer (*(uint8*)(g_ram+0x6D1)) #define number_of_group_enemies (*(uint8*)(g_ram+0x6D3)) #define player_gfx_offset (*(uint8*)(g_ram+0x6D5)) #define warp_zone_control (*(uint8*)(g_ram+0x6D6)) #define fireworks_counter (*(uint8*)(g_ram+0x6D7)) #define multi_loop_correct_cntr (*(uint8*)(g_ram+0x6D9)) #define multi_loop_pass_cntr (*(uint8*)(g_ram+0x6DA)) #define jumpspring_force (*(uint8*)(g_ram+0x6DB)) #define bowser_var06DC (*(uint8*)(g_ram+0x6DC)) #define bit_m_filter (*(uint8*)(g_ram+0x6DD)) #define change_area_timer (*(uint8*)(g_ram+0x6DE)) #define player_x_scroll (*(uint8*)(g_ram+0x6FF)) #define player_x_speed_absolute (*(uint8*)(g_ram+0x700)) #define friction_adder_high (*(uint8*)(g_ram+0x701)) #define friction_adder_low (*(uint8*)(g_ram+0x702)) #define running_speed (*(uint8*)(g_ram+0x703)) #define swimming_flag (*(uint8*)(g_ram+0x704)) #define player_x_move_force (*(uint8*)(g_ram+0x705)) #define diff_to_halt_jump (*(uint8*)(g_ram+0x706)) #define jump_origin_y_pos_hi (*(uint8*)(g_ram+0x707)) #define jump_origin_y_pos_lo (*(uint8*)(g_ram+0x708)) #define vertical_force (*(uint8*)(g_ram+0x709)) #define vertical_force_down (*(uint8*)(g_ram+0x70A)) #define player_change_size_flag (*(uint8*)(g_ram+0x70B)) #define player_anim_timer_set (*(uint8*)(g_ram+0x70C)) #define player_anim_ctrl (*(uint8*)(g_ram+0x70D)) #define jumpspring_anim_ctrl (*(uint8*)(g_ram+0x70E)) #define climbing_ypos_unk (*(uint8*)(g_ram+0x70F)) #define player_entrance_ctrl (*(uint8*)(g_ram+0x710)) #define fireball_throwing_timer (*(uint8*)(g_ram+0x711)) #define death_music_loaded (*(uint8*)(g_ram+0x712)) #define flagpole_sound_queue (*(uint8*)(g_ram+0x713)) #define crouching_flag (*(uint8*)(g_ram+0x714)) #define game_timer_setting (*(uint8*)(g_ram+0x715)) #define disable_collision_detection (*(uint8*)(g_ram+0x716)) #define title_screen_menu_var0717 (*(uint8*)(g_ram+0x717)) #define title_screen_menu_var0718 (*(uint8*)(g_ram+0x718)) #define cutscene_toad_line_to_display (*(uint8*)(g_ram+0x719)) #define screen_left_xpos_hi (*(uint8*)(g_ram+0x71A)) #define screen_right_xpos_hi (*(uint8*)(g_ram+0x71B)) #define screen_left_xpos_lo (*(uint8*)(g_ram+0x71C)) #define screen_right_xpos (*(uint8*)(g_ram+0x71D)) #define column_sets (*(uint8*)(g_ram+0x71E)) #define area_parser_task_num (*(uint8*)(g_ram+0x71F)) #define render_graphics_var0720 (*(uint16*)(g_ram+0x720)) #define sprite0_hit_detect_flag (*(uint8*)(g_ram+0x722)) #define scroll_lock (*(uint8*)(g_ram+0x723)) #define column_pos_hi (*(uint8*)(g_ram+0x725)) #define current_column_pos_lo (*(uint8*)(g_ram+0x726)) #define terrain_control (*(uint8*)(g_ram+0x727)) #define backloading_flag (*(uint8*)(g_ram+0x728)) #define behind_area_parser_flag (*(uint8*)(g_ram+0x729)) #define area_object_page_loc (*(uint8*)(g_ram+0x72A)) #define area_object_page_sel (*(uint8*)(g_ram+0x72B)) #define area_data_offset (*(uint16*)(g_ram+0x72C)) #define area_style (*(uint8*)(g_ram+0x733)) #define decode_area_data_var0734 (*(uint8*)(g_ram+0x734)) #define area_object_height (*(uint8*)(g_ram+0x735)) #define enemy_data_offset2 (*(uint8*)(g_ram+0x739)) #define enemy_object_page_loc (*(uint8*)(g_ram+0x73A)) #define enemy_object_page_sel (*(uint8*)(g_ram+0x73B)) #define screen_routine_task (*(uint8*)(g_ram+0x73C)) #define scroll_thirty_two (*(uint8*)(g_ram+0x73D)) #define layer1_xpos_lo (*(uint8*)(g_ram+0x73F)) #define layer1_ypos_lo (*(uint8*)(g_ram+0x740)) #define foreground_scenery (*(uint8*)(g_ram+0x741)) #define background_scenery (*(uint8*)(g_ram+0x742)) #define cloud_type_override (*(uint8*)(g_ram+0x743)) #define background_color_ctrl (*(uint8*)(g_ram+0x744)) #define loop_command (*(uint8*)(g_ram+0x745)) #define star_flag_task_control (*(uint8*)(g_ram+0x746)) #define timer_control (*(uint8*)(g_ram+0x747)) #define coin_tally_for_1ups (*(uint8*)(g_ram+0x748)) #define cutscene_toad_text_timer (*(uint8*)(g_ram+0x749)) #define area_addrs_l_offset (*(uint8*)(g_ram+0x74F)) #define area_pointer (*(uint8*)(g_ram+0x750)) #define entrance_page (*(uint8*)(g_ram+0x751)) #define alt_entrance_ctrl (*(uint8*)(g_ram+0x752)) #define current_player (*(uint8*)(g_ram+0x753)) #define player_size (*(uint8*)(g_ram+0x754)) #define player_pos_for_scroll (*(uint8*)(g_ram+0x755)) #define player_status (*(uint8*)(g_ram+0x756)) #define fetch_new_game_timer_flag (*(uint8*)(g_ram+0x757)) #define vine_screen_exit_flag (*(uint8*)(g_ram+0x758)) #define game_timer_expired_flag (*(uint8*)(g_ram+0x759)) #define number_of_lives (*(uint8*)(g_ram+0x75A)) #define halfway_page (*(uint8*)(g_ram+0x75B)) #define level_number (*(uint8*)(g_ram+0x75C)) #define hidden_1up_flag (*(uint8*)(g_ram+0x75D)) #define player_coin_count (*(uint8*)(g_ram+0x75E)) #define world_number (*(uint8*)(g_ram+0x75F)) #define area_number (*(uint8*)(g_ram+0x760)) #define other_player_num_lives (*(uint8*)(g_ram+0x761)) #define player_other_players_starting_screen (*(uint8*)(g_ram+0x762)) #define player_other_players_level_number_display (*(uint8*)(g_ram+0x763)) #define offscr_hidden_1up_flag (*(uint8*)(g_ram+0x764)) #define player_other_players_coin_count (*(uint8*)(g_ram+0x765)) #define offscreen_players_world (*(uint8*)(g_ram+0x766)) #define player_other_players_level (*(uint8*)(g_ram+0x767)) #define cutscene_task_subpos (*(uint8*)(g_ram+0x768)) #define screen_routines_flag0769 (*(uint8*)(g_ram+0x769)) #define primary_hard_mode (*(uint8*)(g_ram+0x76A)) #define game_mode (*(uint8*)(g_ram+0x770)) #define UNUSED_game_mode_upper ((None*)(g_ram+0x771)) #define game_mode_task (*(uint8*)(g_ram+0x772)) #define vram_buffer_addr_ctrl (*(uint8*)(g_ram+0x773)) #define disable_screen_flag (*(uint8*)(g_ram+0x774)) #define scroll_amount (*(uint8*)(g_ram+0x775)) #define display_pause_menu_flag (*(uint8*)(g_ram+0x776)) #define pausemenu_delay (*(uint8*)(g_ram+0x777)) #define mirror_ppu_ctrl_reg1 (*(uint8*)(g_ram+0x778)) #define number_of_players (*(uint8*)(g_ram+0x77A)) #define other_player_size (*(uint8*)(g_ram+0x77F)) #define other_player_power_up (*(uint8*)(g_ram+0x780)) #define other_player_hard_mode (*(uint8*)(g_ram+0x781)) #define interval_timer_control (*(uint8*)(g_ram+0x787)) #define all_timers (*(uint8*)(g_ram+0x788)) #define player_anim_timer (*(uint8*)(g_ram+0x789)) #define jump_swim_timer (*(uint8*)(g_ram+0x78A)) #define running_timer (*(uint8*)(g_ram+0x78B)) #define block_bounce_timer (*(uint8*)(g_ram+0x78C)) #define side_collision_timer (*(uint8*)(g_ram+0x78D)) #define jumpspring_timer (*(uint8*)(g_ram+0x78E)) #define game_paused_timer (*(uint8*)(g_ram+0x78F)) #define climb_side_timer (*(uint8*)(g_ram+0x791)) #define enemy_frame_timer ((uint8*)(g_ram+0x792)) #define frenzy_enemy_timer (*(uint8*)(g_ram+0x79B)) #define bowser_fire_breath_timer (*(uint8*)(g_ram+0x79C)) #define stomp_timer (*(uint8*)(g_ram+0x79D)) #define air_bubble_timer (*(uint8*)(g_ram+0x79E)) #define scroll_interval_timer (*(uint8*)(g_ram+0x7A1)) #define enemy_interval_timer (*(uint8*)(g_ram+0x7A2)) #define brick_coin_timer (*(uint8*)(g_ram+0x7AD)) #define player_hurt_timer (*(uint8*)(g_ram+0x7AE)) #define player_star_power_timer (*(uint8*)(g_ram+0x7AF)) #define screen_timer (*(uint8*)(g_ram+0x7B0)) #define event_music_buffer (*(uint8*)(g_ram+0x7B1)) #define demo_timer (*(uint8*)(g_ram+0x7B2)) #define random_byte1 (*(uint8*)(g_ram+0x7B7)) #define random_byte2 (*(uint8*)(g_ram+0x7B8)) #define random_byte3 (*(uint8*)(g_ram+0x7B9)) #define random_byte4 (*(uint8*)(g_ram+0x7BA)) #define random_byte5 (*(uint8*)(g_ram+0x7BB)) #define random_byte6 (*(uint8*)(g_ram+0x7BC)) #define random_byte7 (*(uint8*)(g_ram+0x7BD)) #define random_lfsr_tmp (*(uint8*)(g_ram+0x7C7)) #define displayed_score ((uint8*)(g_ram+0x7C8)) #define marios_score ((uint8*)(g_ram+0x7CE)) #define luigis_score ((uint8*)(g_ram+0x7D4)) #define score_and_coin_display ((uint8*)(g_ram+0x7DA)) #define level_timer_hundreds (*(uint8*)(g_ram+0x7E9)) #define level_timer_tens (*(uint8*)(g_ram+0x7EA)) #define level_timer_ones (*(uint8*)(g_ram+0x7EB)) #define title_screen_hard_mode_flag (*(uint8*)(g_ram+0x7FB)) #define player_hard_mode_flag (*(uint8*)(g_ram+0x7FC)) #define continue_world (*(uint8*)(g_ram+0x7FD)) #define title_screen_var07FF (*(uint8*)(g_ram+0x7FF)) #define oam_buf ((OamEnt*)(g_ram+0x800)) #define compressed_oam_size_buf ((uint8*)(g_ram+0xA00)) #define g_word_7E0A46 (*(uint16*)(g_ram+0xA46)) #define g_word_7E0A4A (*(uint16*)(g_ram+0xA4A)) #define g_word_7E0ACA (*(uint16*)(g_ram+0xACA)) #define podoboo_array_1 ((uint8*)(g_ram+0xB00)) #define podoboo_array_2 ((uint8*)(g_ram+0xB09)) #define podoboo_array_3 ((uint8*)(g_ram+0xB12)) #define contact_sprite_arr1 ((uint8*)(g_ram+0xB25)) #define contact_sprite_x_hi ((uint8*)(g_ram+0xB2A)) #define contact_sprite_x_lo ((uint8*)(g_ram+0xB2F)) #define contact_sprite_y ((uint8*)(g_ram+0xB34)) #define contact_sprite_some_x_pos (*(uint16*)(g_ram+0xB39)) #define contact_sprite_some_y_pos (*(uint8*)(g_ram+0xB3B)) #define unused_byte_7E0B41 (*(uint8*)(g_ram+0xB41)) #define unused_byte_7E0B42 (*(uint8*)(g_ram+0xB42)) #define unused_byte_7E0B43 (*(uint8*)(g_ram+0xB43)) #define spr_data_offset (*(uint8*)(g_ram+0xB45)) #define enemy_obj_id ((uint8*)(g_ram+0xB46)) #define block_obj_id ((uint8*)(g_ram+0xB51)) #define bubble_obj_id ((uint8*)(g_ram+0xB53)) #define fireball_oam_id ((uint8*)(g_ram+0xB56)) #define floatey_numbers_oam_id (*(uint8*)(g_ram+0xB58)) #define misc_spr_oam_id ((uint8*)(g_ram+0xB62)) #define pausemenu_var4 (*(uint16*)(g_ram+0xB6B)) #define pausemenu_var5 (*(uint16*)(g_ram+0xB6D)) #define pausemenu_var6 (*(uint16*)(g_ram+0xB6F)) #define pausemenu_var7 (*(uint16*)(g_ram+0xB71)) #define pausemenu_var8 (*(uint16*)(g_ram+0xB73)) #define pause_menu_idx (*(uint8*)(g_ram+0xB75)) #define pausemenu_var3 (*(uint8*)(g_ram+0xB76)) #define pausemenu_var1 (*(uint8*)(g_ram+0xB77)) #define blinking_cursor_frame_counter (*(uint8*)(g_ram+0xB78)) #define auto_control_player_var1 (*(uint8*)(g_ram+0xB7A)) #define cutscene_hdma_varB80 (*(uint16*)(g_ram+0xB80)) #define cutscene_hdma_varB82 (*(uint16*)(g_ram+0xB82)) #define cutscene_hdma_varB84 (*(uint16*)(g_ram+0xB84)) #define cutscene_hdma_varB86 (*(uint16*)(g_ram+0xB86)) #define cutscene_hdma_varB88 (*(uint16*)(g_ram+0xB88)) #define cutscene_hdma_varB8E (*(uint16*)(g_ram+0xB8E)) #define cutscene_hdma_varB90 (*(uint16*)(g_ram+0xB90)) #define cutscene_hdma_varB92 (*(uint16*)(g_ram+0xB92)) #define cutscene_hdma_varB94 (*(uint16*)(g_ram+0xB94)) #define cutscene_hdma_varB96 (*(uint16*)(g_ram+0xB96)) #define cutscene_hdma_varB98 (*(uint16*)(g_ram+0xB98)) #define cutscene_hdma_varB9A (*(uint16*)(g_ram+0xB9A)) #define cutscene_toad_has_been_initialized_flag (*(uint8*)(g_ram+0xB9C)) #define cutscene_var0B9D_oam_id (*(uint8*)(g_ram+0xB9D)) #define cutscene_var0B9E (*(uint8*)(g_ram+0xB9E)) #define cutscene_var0B9F (*(uint8*)(g_ram+0xB9F)) #define cutscene_var0BA0 (*(uint8*)(g_ram+0xBA0)) #define cutscene_var0BA1 (*(uint8*)(g_ram+0xBA1)) #define cutscene_toad_var0BA3 (*(uint8*)(g_ram+0xBA3)) #define cutscene_var0BA4 (*(uint8*)(g_ram+0xBA4)) #define cutscene_var0BA5 (*(uint8*)(g_ram+0xBA5)) #define cutscene_toad_var0BA6 (*(uint8*)(g_ram+0xBA6)) #define cutscene_var0BA7 (*(uint8*)(g_ram+0xBA7)) #define cutscene_arr0BB0 ((uint8*)(g_ram+0xBB0)) #define cutscene_arr0BB4 ((uint8*)(g_ram+0xBB4)) #define cutscene_arr0BB8 ((uint8*)(g_ram+0xBB8)) #define g_byte_7E0BBC ((uint8*)(g_ram+0xBBC)) #define oam_tile_size_buffer ((uint8*)(g_ram+0xC00)) #define offscreen_bits_shr1 (*(RelPosStruct*)(g_ram+0xE00)) #define offscreen_bits_and1 (*(RelPosStruct*)(g_ram+0xE08)) #define some_xpos_0E12 (*(uint16*)(g_ram+0xE12)) #define xpos16 (*(uint16*)(g_ram+0xE14)) #define xpos_new_var0E16 (*(uint16*)(g_ram+0xE16)) #define unused_byte_7E0E1A (*(uint8*)(g_ram+0xE1A)) #define enemy_arr_0E1B ((uint8*)(g_ram+0xE1B)) #define palette_anim0E20 (*(uint8*)(g_ram+0xE20)) #define level_level_preview_image_to_use (*(uint8*)(g_ram+0xE21)) #define background_color_ctrl_0 (*(uint8*)(g_ram+0xE22)) #define unused_byte_7E0E23 (*(uint8*)(g_ram+0xE23)) #define original_level (*(uint8*)(g_ram+0xE24)) #define turn_around_smoke_flag (*(uint8*)(g_ram+0xE40)) #define turn_around_smoke_flag2 (*(uint8*)(g_ram+0xE41)) #define turn_around_smoke_bits ((uint8*)(g_ram+0xE42)) #define turn_around_smoke_xpos ((uint8*)(g_ram+0xE46)) #define turn_around_smoke_ypos ((uint8*)(g_ram+0xE4A)) #define player_gfx_processing_flag (*(uint8*)(g_ram+0xE4E)) #define enable_mosaic_fades_flag (*(uint8*)(g_ram+0xE4F)) #define floateynum_xpos_word ((uint16*)(g_ram+0xE50)) #define override_area_data_addr_index (*(uint8*)(g_ram+0xE65)) #define override_player_xpos2_flag (*(uint8*)(g_ram+0xE66)) #define var0E67 (*(uint8*)(g_ram+0xE67)) #define podoboo_animation_frame_counter (*(uint8*)(g_ram+0xE68)) #define spinning_coin_xpos0E6B (*(uint16*)(g_ram+0xE6B)) #define spinning_coin_sprite_ypos (*(uint8*)(g_ram+0xE6D)) #define spinning_coin_ctr (*(uint8*)(g_ram+0xE6E)) #define spinning_coin_ctr2 (*(uint8*)(g_ram+0xE6F)) #define spinning_coin_sprite_xpos (*(uint16*)(g_ram+0xE70)) #define level_free_movement_debug_flag (*(uint8*)(g_ram+0xE73)) #define palette_animation_frame_counter (*(uint8*)(g_ram+0xE74)) #define coin_palette_animation_frame_counter (*(uint8*)(g_ram+0xE75)) #define palette_animation0E76 (*(uint8*)(g_ram+0xE76)) #define mosaic_mirror (*(uint8*)(g_ram+0xE7E)) #define fade_direction (*(uint8*)(g_ram+0xE7F)) #define which_enemy_gfx_offs (*(uint8*)(g_ram+0xE85)) #define spr_rel_xpos16 ((uint16*)(g_ram+0xE87)) #define bullet_bill_arr0E9D ((uint8*)(g_ram+0xE9D)) #define bullet_bill_arr0EA2 ((uint8*)(g_ram+0xEA2)) #define bullet_bill_arr0EA7 ((uint8*)(g_ram+0xEA7)) #define bullet_bill_arr0EAC ((uint8*)(g_ram+0xEAC)) #define bullet_bill_arr0EB1 ((uint8*)(g_ram+0xEB1)) #define UNUSED_byte_7E0EB6 (*(uint8*)(g_ram+0xEB6)) #define palette_animation0EB7 (*(uint8*)(g_ram+0xEB7)) #define palette_animation0EB8 (*(uint8*)(g_ram+0xEB8)) #define palette_animation0EB9 (*(uint8*)(g_ram+0xEB9)) #define palette_animation0EBA (*(uint8*)(g_ram+0xEBA)) #define layer2_bg_0EC0 (*(uint16*)(g_ram+0xEC0)) #define player_luigi_graphics (*(uint8*)(g_ram+0xEC2)) #define current_player_mirror (*(uint8*)(g_ram+0xEC3)) #define UNUSED_byte_7E0EC8 (*(uint8*)(g_ram+0xEC8)) #define render_graphics_var0EC9 (*(uint8*)(g_ram+0xEC9)) #define tree_ledge_saved_x (*(uint8*)(g_ram+0xECA)) #define tree_ledge_countdown (*(uint8*)(g_ram+0xECB)) #define render_graphics_var0ecc (*(uint16*)(g_ram+0xECC)) #define render_area_gfx_0ECE (*(uint16*)(g_ram+0xECE)) #define vblank_which_layer2_scroll_flag (*(uint8*)(g_ram+0xED1)) #define layer2_ypos (*(uint16*)(g_ram+0xED2)) #define vblank_flag_0ED4 (*(uint8*)(g_ram+0xED4)) #define game_loop_toggler (*(uint8*)(g_ram+0xED6)) #define UNUSED_word_7E0ED7 (*(uint16*)(g_ram+0xED7)) #define buffer_layer3_cloud_tilemap_offs (*(uint16*)(g_ram+0xED9)) #define var0EDB (*(uint8*)(g_ram+0xEDB)) #define enable_layer3_bgflag (*(uint8*)(g_ram+0xEDC)) #define area_parser_varEDD (*(uint8*)(g_ram+0xEDD)) #define vblank_enable_vtimel_flag (*(uint8*)(g_ram+0xEDE)) #define set_level_music_flag (*(uint8*)(g_ram+0xEDF)) #define coldata1_mirror (*(uint8*)(g_ram+0xEE0)) #define coldata2_mirror (*(uint8*)(g_ram+0xEE1)) #define coldata3_mirror (*(uint8*)(g_ram+0xEE2)) #define render_graphics_var0EE6 (*(uint8*)(g_ram+0xEE6)) #define render_graphics_var0EE7 (*(uint8*)(g_ram+0xEE7)) #define area_parser_var3 (*(uint8*)(g_ram+0xEE8)) #define area_parser_var4 (*(uint8*)(g_ram+0xEE9)) #define layers_scroll_0EEC (*(uint16*)(g_ram+0xEEC)) #define layer3_xpos (*(uint16*)(g_ram+0xEEE)) #define area_parser_ctr1 (*(uint8*)(g_ram+0xEF0)) #define vtimel_mirror (*(uint8*)(g_ram+0xEF2)) #define UNUSED_byte_7E0EF3 (*(uint8*)(g_ram+0xEF3)) #define render_graphics_var0EF4 (*(uint8*)(g_ram+0xEF4)) #define UNUSED_render_graphics_var0EF5 (*(uint8*)(g_ram+0xEF5)) #define g_byte_7E0EF6 (*(uint8*)(g_ram+0xEF6)) #define g_word_7E0EF7 (*(uint16*)(g_ram+0xEF7)) #define vblank_upload_from_7f0000_flag (*(uint8*)(g_ram+0xEF9)) #define g_word_7E0EFA (*(uint16*)(g_ram+0xEFA)) #define area_parser_flag0EFC (*(uint8*)(g_ram+0xEFC)) #define layer2_xpos (*(uint16*)(g_ram+0xEFD)) #define g_byte_7E0F00 (*(uint8*)(g_ram+0xF00)) #define some_flag_for_transpose_players (*(uint8*)(g_ram+0xF03)) #define game_over_screen_blinking_cursor_pos (*(uint8*)(g_ram+0xF06)) #define var0F0B (*(uint8*)(g_ram+0xF0B)) #define enemy_array_0F36 ((uint8*)(g_ram+0xF36)) #define enemy_array_F40 ((uint8*)(g_ram+0xF40)) #define level_preview_sprites_ctr (*(uint8*)(g_ram+0xF4A)) #define bowser_var0F4C (*(uint8*)(g_ram+0xF4C)) #define var0F4D_new (*(uint8*)(g_ram+0xF4D)) #define bowser_flame_enemy_index (*(uint8*)(g_ram+0xF4E)) #define enemy_arr0F4F ((uint8*)(g_ram+0xF4F)) #define enemy_array_0F58 ((uint8*)(g_ram+0xF58)) #define enemy_array_0F62 ((uint8*)(g_ram+0xF62)) #define enemy_array_0F6B ((uint8*)(g_ram+0xF6B)) #define enemy_array_0F74 ((uint8*)(g_ram+0xF74)) #define cutscene_rustling_bag_animation_frame (*(uint8*)(g_ram+0xF7D)) #define cutscene_toad_popped_out_of_bag_flag (*(uint8*)(g_ram+0xF7E)) #define cutscene_wait_before_toad_breaks_out_of_bag (*(uint8*)(g_ram+0xF7F)) #define cutscene_peach_close_up_animation_frame (*(uint8*)(g_ram+0xF80)) #define cutscene_peach_var0F81 (*(uint8*)(g_ram+0xF81)) #define cutscene_peach_var0F82 (*(uint8*)(g_ram+0xF82)) #define cutscene_peach_var0F83 (*(uint8*)(g_ram+0xF83)) #define cutscene_peach_var0F84 (*(uint8*)(g_ram+0xF84)) #define cutscene_peach_var0F85 (*(uint16*)(g_ram+0xF85)) #define cutscene_peach_current_state (*(uint8*)(g_ram+0xF87)) #define cutscene_peach_state_timer (*(uint8*)(g_ram+0xF88)) #define cutscene_peach_var0F89 (*(uint8*)(g_ram+0xF89)) #define pausemenu_var2 (*(uint8*)(g_ram+0xF8A)) #define player_hitbox_left (*(uint8*)(g_ram+0xF9C)) #define player_hitbox_top (*(uint8*)(g_ram+0xF9D)) #define player_hitbox_right (*(uint8*)(g_ram+0xF9E)) #define player_hitbox_bottom (*(uint8*)(g_ram+0xF9F)) #define enemy_hitbox_left (*(uint8*)(g_ram+0xFA0)) #define enemy_hitbox_top (*(uint8*)(g_ram+0xFA1)) #define enemy_hitbox_right (*(uint8*)(g_ram+0xFA2)) #define enemy_hitbox_bottom (*(uint8*)(g_ram+0xFA3)) #define g_byte_7E0FB4 (*(uint8*)(g_ram+0xFB4)) #define g_byte_7E0FB5 (*(uint8*)(g_ram+0xFB5)) #define g_byte_7E0FB6 (*(uint8*)(g_ram+0xFB6)) #define g_byte_7E0FB7 (*(uint8*)(g_ram+0xFB7)) #define saved_joypad_bits (*(uint8*)(g_ram+0xFF4)) #define controller_hold1p2 (*(uint8*)(g_ram+0xFF5)) #define controller_press1p1 (*(uint8*)(g_ram+0xFF6)) #define controller_press1p2 (*(uint8*)(g_ram+0xFF7)) #define controller_hold2p1 (*(uint8*)(g_ram+0xFF8)) #define controller_hold2p2 (*(uint8*)(g_ram+0xFF9)) #define controller_press2p1 (*(uint8*)(g_ram+0xFFA)) #define controller_press2p2 (*(uint8*)(g_ram+0xFFB)) #define p1_ctrl_disable (*(uint16*)(g_ram+0xFFC)) #define p2_ctrl_disable_hi (*(uint8*)(g_ram+0xFFE)) #define p2_ctrl_disable_lo (*(uint8*)(g_ram+0xFFF)) #define palette_mirror ((uint16*)(g_ram+0x1000)) #define update_entire_palette_flag (*(uint8*)(g_ram+0x1200)) #define inidisp_mirror (*(uint8*)(g_ram+0x1201)) #define hdmaenable_mirror (*(uint8*)(g_ram+0x1203)) #define w12sel_mirror (*(uint8*)(g_ram+0x1204)) #define w34sel_mirror (*(uint8*)(g_ram+0x1205)) #define wobjsel_mirror (*(uint8*)(g_ram+0x1206)) #define tmw_mirror (*(uint8*)(g_ram+0x1207)) #define tsw_mirror (*(uint8*)(g_ram+0x1208)) #define cgwsel_mirror (*(uint8*)(g_ram+0x1209)) #define cgadsub_mirror (*(uint8*)(g_ram+0x120A)) #define tm_mirror (*(uint8*)(g_ram+0x120B)) #define ts_mirror (*(uint8*)(g_ram+0x120C)) #define bgmode_mirror (*(uint8*)(g_ram+0x120D)) #define wh2_mirror (*(uint8*)(g_ram+0x120E)) #define wh3_mirror (*(uint8*)(g_ram+0x120F)) #define coldata_mirror (*(uint8*)(g_ram+0x1210)) #define area_object_length ((uint8*)(g_ram+0x1300)) #define area_obj_offset_buffer ((uint16*)(g_ram+0x1305)) #define tree_ledge_arr130F ((uint8*)(g_ram+0x130F)) #define mushroom_ledge_half_len ((uint8*)(g_ram+0x1314)) #define hdmagradient_red_channel_data ((uint8*)(g_ram+0x1400)) #define hdmagradient_green_channel_data ((uint8*)(g_ram+0x1460)) #define hdmagradient_blue_channel_data ((uint8*)(g_ram+0x14C0)) #define hdmagradient_red_channel_scanlines_and_ptrs_table ((uint8*)(g_ram+0x1520)) #define hdmagradient_green_channel_scanlines_and_ptrs_table ((uint8*)(g_ram+0x1560)) #define hdmagradient_blue_channel_scanlines_and_ptrs_table ((uint8*)(g_ram+0x15A0)) #define underwater_hdma_gradient_timer (*(uint8*)(g_ram+0x15E0)) #define underwater_hdma_gradient_index (*(uint8*)(g_ram+0x15E2)) #define global_frame_advance_debug_active_flag (*(uint8*)(g_ram+0x15E5)) #define sound_ch1 (*(uint8*)(g_ram+0x1600)) #define sound_ch2 (*(uint8*)(g_ram+0x1601)) #define music_ch1 (*(uint8*)(g_ram+0x1602)) #define sound_ch3 (*(uint8*)(g_ram+0x1603)) #define apui00_last (*(uint8*)(g_ram+0x1604)) #define apui01_last (*(uint8*)(g_ram+0x1605)) #define apui02_var1606 (*(uint8*)(g_ram+0x1606)) #define apui03_var1607 (*(uint8*)(g_ram+0x1607)) #define UNUSED_byte_7E1608 (*(uint8*)(g_ram+0x1608)) #define UNUSED_byte_7E1609 (*(uint8*)(g_ram+0x1609)) #define apui00_delay (*(uint8*)(g_ram+0x160A)) #define apui01_delay (*(uint8*)(g_ram+0x160B)) #define apui02_var160C (*(uint8*)(g_ram+0x160C)) #define apui03_delay (*(uint8*)(g_ram+0x160D)) #define UNUSED_byte_7E160E (*(uint8*)(g_ram+0x160E)) #define apui03_upper_bit (*(uint8*)(g_ram+0x160F)) #define cutscene_var1680 (*(uint8*)(g_ram+0x1680)) #define UNUSED_byte_7E1681 (*(uint8*)(g_ram+0x1681)) #define DUMMY_byte_7E16F2 (*(uint8*)(g_ram+0x16F2)) #define DUMMY_byte_7E16F4 ((uint8*)(g_ram+0x16F4)) #define vram_buffer1_offset (*(uint8*)(g_ram+0x1700)) #define vram_buffer1 ((uint8*)(g_ram+0x1701)) #define vram_buffer2_offset (*(uint16*)(g_ram+0x1A00)) #define vram_buffer2 ((uint16*)(g_ram+0x1A02)) #define layer2_map16_table ((uint16*)(g_ram+0x2000)) #define layer2_bgdata ((uint8*)(g_ram+0xD000)) #define upload_buffer_3 ((uint16*)(g_ram+0x10000)) #define layer3_tilemap_upload_buf ((uint16*)(g_ram+0x12000)) #define g_byte_7F3000 ((uint8*)(g_ram+0x13000)) #define hdma_data_array ((uint16*)(g_ram+0x1F000)) #define hdma_data_array_2 ((uint16*)(g_ram+0x1F200)) #define save_buffer (*(uint8*)(g_ram+0x1FB00)) #define save_buffer_current_level (*(uint8*)(g_ram+0x1FB01)) #define save_buffer_area_number_original (*(uint8*)(g_ram+0x1FB02)) #define save_buffer_current_life_count (*(uint8*)(g_ram+0x1FB03)) #define save_buffer_other_players_life_count (*(uint8*)(g_ram+0x1FB04)) #define save_buffer_hard_mode_active_flag (*(uint8*)(g_ram+0x1FB05)) #define save_buffer_2_player_flag (*(uint8*)(g_ram+0x1FB06)) #define save_buffer_checksum (*(uint16*)(g_ram+0x1FB07)) #define g_byte_7FFFFF (*(uint8*)(g_ram+0x1FFFF)) #define g_byte_700000 (*(uint8*)(g_sram+0x0)) #define g_word_700002 (*(uint16*)(g_sram+0x2)) #define g_word_700004 (*(uint16*)(g_sram+0x4)) #define sram_controller_type_x (*(uint8*)(g_sram+0x6)) #define debug_flag (*(uint8*)(g_sram+0x7)) #define sram_world_number (*(uint8*)(g_sram+0x8)) #define sram_initial_selected_level (*(uint8*)(g_sram+0x9)) #define g_byte_70000E (*(uint8*)(g_sram+0xE)) #define sram_cutscene_heart_eyes_flag (*(uint8*)(g_sram+0xF)) #define g_byte_700010 (*(uint8*)(g_sram+0x10)) #define g_byte_700015 (*(uint8*)(g_sram+0x15)) #define sram_top_score ((uint8*)(g_sram+0x1FE0)) #define sram_controller1_plugged_in (*(uint8*)(g_sram+0x1FF4)) #define sram_controller2_plugged_in (*(uint8*)(g_sram+0x1FF6)) #define sram_hard_mode_flag (*(uint8*)(g_sram+0x1FF8)) #define sram_world_number2 (*(uint8*)(g_sram+0x1FF9)) #define g_word_701FFC (*(uint16*)(g_sram+0x1FFC)) #define mirror_of_sram (*(uint16*)(g_sram+0x2000))