shithub: zelda3

ref: 70df79a4f0f19243b48d403502d5e3c7034d4a75
dir: /variables.h/

View raw version
#ifndef ZELDA3_VARIABLES_H_
#define ZELDA3_VARIABLES_H_
#define main_module_index (*(uint8*)(g_ram+0x10))
#define submodule_index (*(uint8*)(g_ram+0x11))
#define nmi_boolean (*(uint8*)(g_ram+0x12))
#define INIDISP_copy (*(uint8*)(g_ram+0x13))
#define nmi_load_bg_from_vram (*(uint8*)(g_ram+0x14))
#define flag_update_cgram_in_nmi (*(uint8*)(g_ram+0x15))
#define flag_update_hud_in_nmi (*(uint8*)(g_ram+0x16))
#define nmi_subroutine_index (*(uint8*)(g_ram+0x17))
#define nmi_copy_packets_flag (*(uint8*)(g_ram+0x18))
#define nmi_update_tilemap_dst (*(uint8*)(g_ram+0x19))
#define frame_counter (*(uint8*)(g_ram+0x1A))
#define player_is_indoors (*(uint8*)(g_ram+0x1B))
#define TM_copy (*(uint8*)(g_ram+0x1C))
#define TS_copy (*(uint8*)(g_ram+0x1D))
#define TMW_copy (*(uint8*)(g_ram+0x1E))
#define TSW_copy (*(uint8*)(g_ram+0x1F))
#define link_y_coord (*(uint16*)(g_ram+0x20))
#define link_x_coord (*(uint16*)(g_ram+0x22))
#define link_z_coord (*(uint16*)(g_ram+0x24))
#define link_direction_last (*(uint8*)(g_ram+0x26))
#define link_actual_vel_y (*(uint8*)(g_ram+0x27))
#define link_actual_vel_x (*(uint8*)(g_ram+0x28))
#define link_actual_vel_z (*(uint8*)(g_ram+0x29))
#define link_subpixel_y (*(uint8*)(g_ram+0x2A))
#define link_subpixel_x (*(uint8*)(g_ram+0x2B))
#define link_subpixel_z (*(uint8*)(g_ram+0x2C))
#define link_counter_var1 (*(uint8*)(g_ram+0x2D))
#define link_animation_steps (*(uint8*)(g_ram+0x2E))
#define link_direction_facing (*(uint8*)(g_ram+0x2F))
#define link_y_vel (*(uint8*)(g_ram+0x30))
#define link_x_vel (*(uint8*)(g_ram+0x31))
#define link_y_coord_original (*(uint16*)(g_ram+0x32))
#define byte_7E0034 (*(uint8*)(g_ram+0x34))
#define byte_7E0035 (*(uint8*)(g_ram+0x35))
#define tiledetect_diagonal_tile (*(uint16*)(g_ram+0x38))
#define button_mask_b_y (*(uint8*)(g_ram+0x3A))
#define bitfield_for_a_button (*(uint8*)(g_ram+0x3B))
#define button_b_frames (*(uint8*)(g_ram+0x3C))
#define link_delay_timer_spin_attack (*(uint8*)(g_ram+0x3D))
#define link_y_coord_safe_return_lo (*(uint8*)(g_ram+0x3E))
#define link_x_coord_safe_return_lo (*(uint8*)(g_ram+0x3F))
#define link_y_coord_safe_return_hi (*(uint8*)(g_ram+0x40))
#define link_x_coord_safe_return_hi (*(uint8*)(g_ram+0x41))
#define link_direction_mask_a (*(uint8*)(g_ram+0x42))
#define link_direction_mask_b (*(uint8*)(g_ram+0x43))
#define player_oam_y_offset (*(uint8*)(g_ram+0x44))
#define player_oam_x_offset (*(uint8*)(g_ram+0x45))
#define link_incapacitated_timer (*(uint8*)(g_ram+0x46))
#define set_when_damaging_enemies (*(uint8*)(g_ram+0x47))
#define bitmask_of_dragstate (*(uint8*)(g_ram+0x48))
#define force_move_any_direction (*(uint16*)(g_ram+0x49))
#define link_visibility_status (*(uint8*)(g_ram+0x4B))
#define cape_decrement_counter (*(uint8*)(g_ram+0x4C))
#define link_auxiliary_state (*(uint8*)(g_ram+0x4D))
#define byte_7E004E (*(uint8*)(g_ram+0x4E))
#define index_of_dashing_sfx (*(uint8*)(g_ram+0x4F))
#define link_cant_change_direction (*(uint8*)(g_ram+0x50))
#define tiledetect_which_y_pos ((uint16*)(g_ram+0x51))
#define link_cape_mode (*(uint8*)(g_ram+0x55))
#define link_is_bunny (*(uint8*)(g_ram+0x56))
#define link_speed_modifier (*(uint8*)(g_ram+0x57))
#define tiledetect_stair_tile (*(uint8*)(g_ram+0x58))
#define tiledetect_pit_tile (*(uint8*)(g_ram+0x59))
#define link_this_controls_sprite_oam (*(uint8*)(g_ram+0x5A))
#define player_near_pit_state (*(uint8*)(g_ram+0x5B))
#define byte_7E005C (*(uint8*)(g_ram+0x5C))
#define link_player_handler_state (*(uint8*)(g_ram+0x5D))
#define link_speed_setting (*(uint8*)(g_ram+0x5E))
#define tiledetect_var2 (*(uint16*)(g_ram+0x5F))
#define gravestone_push_timeout (*(uint8*)(g_ram+0x61))
#define tiledetect_var1 (*(uint16*)(g_ram+0x62))
#define oam_priority_value (*(uint16*)(g_ram+0x64))
#define link_last_direction_moved_towards (*(uint8*)(g_ram+0x66))
#define link_direction (*(uint8*)(g_ram+0x67))
#define link_y_page_movement_delta (*(uint8*)(g_ram+0x68))
#define link_x_page_movement_delta (*(uint8*)(g_ram+0x69))
#define link_num_orthogonal_directions (*(uint8*)(g_ram+0x6A))
#define link_moving_against_diag_tile (*(uint8*)(g_ram+0x6B))
#define is_standing_in_doorway (*(uint8*)(g_ram+0x6C))
#define moving_against_diag_deadlocked (*(uint8*)(g_ram+0x6D))
#define tiledetect_diag_state (*(uint16*)(g_ram+0x6E))
#define byte_7E0071 (*(uint8*)(g_ram+0x71))
#define scratch_b (*(uint8*)(g_ram+0x72))
#define scratch_a (*(uint8*)(g_ram+0x73))
#define scratch_c (*(uint8*)(g_ram+0x74))
#define scratch_d (*(uint8*)(g_ram+0x75))
#define index_of_interacting_tile (*(uint16*)(g_ram+0x76))
#define allow_scroll_z (*(uint8*)(g_ram+0x78))
#define link_spin_attack_step_counter (*(uint8*)(g_ram+0x79))
#define last_light_vs_dark_world (*(uint8*)(g_ram+0x7B))
#define word_7E007E (*(uint16*)(g_ram+0x7E))
#define map16_load_src_off (*(uint16*)(g_ram+0x84))
#define map16_load_dst_off (*(uint16*)(g_ram+0x86))
#define map16_load_var2 (*(uint16*)(g_ram+0x88))
#define overworld_screen_index (*(uint16*)(g_ram+0x8A))
#define overlay_index (*(uint16*)(g_ram+0x8C))
#define oam_cur_ptr (*(uint16*)(g_ram+0x90))
#define oam_ext_cur_ptr (*(uint16*)(g_ram+0x92))
#define BGMODE_copy (*(uint8*)(g_ram+0x94))
#define MOSAIC_copy (*(uint8*)(g_ram+0x95))
#define W12SEL_copy (*(uint8*)(g_ram+0x96))
#define W34SEL_copy (*(uint8*)(g_ram+0x97))
#define WOBJSEL_copy (*(uint8*)(g_ram+0x98))
#define CGWSEL_copy (*(uint8*)(g_ram+0x99))
#define CGADSUB_copy (*(uint8*)(g_ram+0x9A))
#define HDMAEN_copy (*(uint8*)(g_ram+0x9B))
#define COLDATA_copy0 (*(uint8*)(g_ram+0x9C))
#define COLDATA_copy1 (*(uint8*)(g_ram+0x9D))
#define COLDATA_copy2 (*(uint8*)(g_ram+0x9E))
#define dungeon_room_index (*(uint16*)(g_ram+0xA0))
#define dungeon_room_index_prev (*(uint16*)(g_ram+0xA2))
#define dung_cur_floor (*(uint8*)(g_ram+0xA4))
#define quadrant_fullsize_x (*(uint8*)(g_ram+0xA6))
#define quadrant_fullsize_y (*(uint8*)(g_ram+0xA7))
#define composite_of_layout_and_quadrant (*(uint8*)(g_ram+0xA8))
#define link_quadrant_x (*(uint8*)(g_ram+0xA9))
#define link_quadrant_y (*(uint8*)(g_ram+0xAA))
#define dung_hdr_collision_2 (*(uint8*)(g_ram+0xAD))
#define dung_hdr_tag ((uint8*)(g_ram+0xAE))
#define subsubmodule_index (*(uint8*)(g_ram+0xB0))
#define subsubmodule_index_PADDING (*(uint8*)(g_ram+0xB1))
#define dung_draw_width_indicator (*(uint16*)(g_ram+0xB2))
#define dung_draw_height_indicator (*(uint16*)(g_ram+0xB4))
#define dung_load_ptr (*(uint16*)(g_ram+0xB7))
#define dung_load_ptr_bank (*(uint8*)(g_ram+0xB9))
#define dung_load_ptr_offs (*(uint16*)(g_ram+0xBA))
#define hud_tmp1 (*(uint16*)(g_ram+0xBD))

#define some_menu_ctr (*(uint8*)(g_ram+0xc8))
#define dung_line_ptrs_row3 (*(uint16*)(g_ram+0xDA))
#define dung_line_ptrs_row4 (*(uint16*)(g_ram+0xDD))
#define BG1HOFS_copy2 (*(uint16*)(g_ram+0xE0))
#define BG2HOFS_copy2 (*(uint16*)(g_ram+0xE2))
#define BG3HOFS_copy2 (*(uint16*)(g_ram+0xE4))
#define BG1VOFS_copy2 (*(uint16*)(g_ram+0xE6))
#define BG2VOFS_copy2 (*(uint16*)(g_ram+0xE8))
#define BG3VOFS_copy2 (*(uint16*)(g_ram+0xEA))
#define tilemap_location_calc_mask (*(uint16*)(g_ram+0xEC))
#define link_is_on_lower_level (*(uint8*)(g_ram+0xEE))
#define room_transitioning_flags (*(uint8*)(g_ram+0xEF))
#define joypad1H_last (*(uint8*)(g_ram+0xF0))
#define joypad1L_last (*(uint8*)(g_ram+0xF2))
#define filtered_joypad_H (*(uint8*)(g_ram+0xF4))
#define filtered_joypad_L (*(uint8*)(g_ram+0xF6))
#define joypad1H_last2 (*(uint8*)(g_ram+0xF8))
#define byte_7E00F9 (*(uint8*)(g_ram+0xF9))
#define joypad1L_last2 (*(uint8*)(g_ram+0xFA))
#define dung_unk2 (*(uint16*)(g_ram+0xFC))
#define virq_trigger (*(uint8*)(g_ram+0xFF))
#define link_dma_graphics_index (*(uint16*)(g_ram+0x100))
#define link_dma_var1 (*(uint16*)(g_ram+0x102))
#define link_dma_var2 (*(uint16*)(g_ram+0x104))
#define link_dma_var3 (*(uint8*)(g_ram+0x107))
#define link_dma_var4 (*(uint8*)(g_ram+0x108))
#define link_dma_var5 (*(uint8*)(g_ram+0x109))
#define death_var5 (*(uint8*)(g_ram+0x10A))
#define saved_module_for_menu (*(uint8*)(g_ram+0x10C))
#define which_entrance (*(uint8*)(g_ram+0x10E))
#define byte_7E010F (*(uint8*)(g_ram+0x10F))
#define dung_index_x3 (*(uint16*)(g_ram+0x110))
#define flag_custom_spell_anim_active (*(uint8*)(g_ram+0x112))
#define link_tile_below (*(uint8*)(g_ram+0x114))
#define link_tile_below_PADDING (*(uint8*)(g_ram+0x115))
#define nmi_load_target_addr (*(uint16*)(g_ram+0x116))
#define nmi_update_tilemap_src (*(uint16*)(g_ram+0x118))
#define bg1_x_offset (*(uint16*)(g_ram+0x11A))
#define bg1_y_offset (*(uint16*)(g_ram+0x11C))
#define BG2HOFS_copy (*(uint16*)(g_ram+0x11E))
#define BG1HOFS_copy (*(uint16*)(g_ram+0x120))
#define BG2VOFS_copy (*(uint16*)(g_ram+0x122))
#define BG1VOFS_copy (*(uint16*)(g_ram+0x124))
#define transition_counter (*(uint8*)(g_ram+0x126))
#define irq_flag (*(uint8*)(g_ram+0x128))
#define is_nmi_thread_active (*(uint8*)(g_ram+0x12A))
#define music_control (*(uint8*)(g_ram+0x12C))
#define sound_effect_ambient (*(uint8*)(g_ram+0x12D))
#define sound_effect_1 (*(uint8*)(g_ram+0x12E))
#define sound_effect_2 (*(uint8*)(g_ram+0x12F))
#define music_unk1 (*(uint8*)(g_ram+0x130))
#define sound_effect_ambient_last (*(uint8*)(g_ram+0x131))
#define queued_music_control (*(uint8*)(g_ram+0x132))
#define last_music_control (*(uint8*)(g_ram+0x133))
#define animated_tile_vram_addr (*(uint16*)(g_ram+0x134))
#define flag_which_music_type (*(uint8*)(g_ram+0x136))
#define stk_return_addr (*(uint16*)(g_ram+0x1FE))
#define overworld_map_state (*(uint8*)(g_ram+0x200))
#define hud_cur_item (*(uint8*)(g_ram+0x202))

#define hud_var1 (*(uint8*)(g_ram+0x204))
#define bottle_menu_expand_row (*(uint8*)(g_ram+0x205))
#define byte_7E0206 (*(uint8*)(g_ram+0x206))
#define timer_for_flashing_circle (*(uint8*)(g_ram+0x207))
#define animate_heart_refill_countdown (*(uint8*)(g_ram+0x208))
#define animate_heart_refill_countdown_subpos (*(uint8*)(g_ram+0x209))
#define is_doing_heart_animation (*(uint8*)(g_ram+0x20A))
#define link_debug_value_1 (*(uint8*)(g_ram+0x20B))
#define dungmap_init_state (*(uint8*)(g_ram+0x20D))
#define dungmap_cur_floor (*(uint16*)(g_ram+0x20E))
#define dungmap_var2 (*(uint8*)(g_ram+0x210))
#define dungmap_idx (*(uint16*)(g_ram+0x211))
#define dungmap_var4 (*(uint16*)(g_ram+0x213))
#define dungmap_var3 (*(uint16*)(g_ram+0x215))
#define dungmap_var5 (*(uint16*)(g_ram+0x217))
#define word_7E0219 (*(uint16*)(g_ram+0x219))
#define word_7E021D (*(uint16*)(g_ram+0x21D))
#define word_7E021F (*(uint16*)(g_ram+0x21F))
#define word_7E0221 (*(uint16*)(g_ram+0x221))
#define byte_7E0223 (*(uint8*)(g_ram+0x223))
#define ancilla_objprio ((uint8*)(g_ram+0x280))
#define ancilla_U ((uint8*)(g_ram+0x28A))
#define ancilla_z_vel ((uint8*)(g_ram+0x294))
#define ancilla_z ((uint8*)(g_ram+0x29E))
#define ancilla_z_subpixel ((uint8*)(g_ram+0x2A8))
#define tiledetect_inroom_staircase (*(uint16*)(g_ram+0x2C0))
#define byte_7E02C2 (*(uint8*)(g_ram+0x2C2))
#define pushedblocks_some_index (*(uint8*)(g_ram+0x2C3))
#define pushedblocks_maybe_timeout (*(uint8*)(g_ram+0x2C4))
#define byte_7E02C5 (*(uint8*)(g_ram+0x2C5))
#define link_recoilmode_timer (*(uint8*)(g_ram+0x2C6))
#define link_actual_vel_z_copy (*(uint8*)(g_ram+0x2C7))
#define byte_7E02C9 (*(uint8*)(g_ram+0x2C9))
#define fallhole_var2 (*(uint8*)(g_ram+0x2CA))
#define swimming_countdown (*(uint8*)(g_ram+0x2CB))
#define byte_7E02CC (*(uint8*)(g_ram+0x2CC))
#define word_7E02CD (*(uint16*)(g_ram+0x2CD))
#define tagalong_var2 (*(uint8*)(g_ram+0x2CF))
#define tagalong_var3 (*(uint8*)(g_ram+0x2D0))
#define tagalong_var7 (*(uint8*)(g_ram+0x2D1))
#define timer_tagalong_reacquire (*(uint8*)(g_ram+0x2D2))
#define tagalong_var1 (*(uint8*)(g_ram+0x2D3))
#define byte_7E02D4 (*(uint8*)(g_ram+0x2D4))
#define tagalong_var4 (*(uint8*)(g_ram+0x2D6))
#define byte_7E02D7 (*(uint8*)(g_ram+0x2D7))
#define link_receiveitem_index (*(uint8*)(g_ram+0x2D8))
#define link_receiveitem_var1 (*(uint8*)(g_ram+0x2D9))
#define link_pose_for_item (*(uint8*)(g_ram+0x2DA))
#define link_triggered_by_whirlpool_sprite (*(uint8*)(g_ram+0x2DB))
#define link_x_coord_copy (*(uint16*)(g_ram+0x2DC))
#define link_y_coord_copy (*(uint16*)(g_ram+0x2DE))
#define link_is_bunny_mirror (*(uint8*)(g_ram+0x2E0))
#define link_is_transforming (*(uint8*)(g_ram+0x2E1))
#define link_bunny_transform_timer (*(uint8*)(g_ram+0x2E2))
#define link_sword_delay_timer (*(uint8*)(g_ram+0x2E3))
#define flag_is_link_immobilized (*(uint8*)(g_ram+0x2E4))
#define tiledetect_chest (*(uint16*)(g_ram+0x2E5))
#define tiledetect_key_lock_gravestones (*(uint8*)(g_ram+0x2E7))
#define bitfield_spike_cactus_tiles (*(uint8*)(g_ram+0x2E8))
#define item_receipt_method (*(uint8*)(g_ram+0x2E9))
#define tiledetect_tile_type (*(uint16*)(g_ram+0x2EA))
#define flag_is_ancilla_to_pick_up (*(uint8*)(g_ram+0x2EC))
#define byte_7E02ED (*(uint8*)(g_ram+0x2ED))
#define tiledetect_spike_floor_and_tile_triggers (*(uint8*)(g_ram+0x2EE))
#define bitmask_for_dashable_tiles (*(uint8*)(g_ram+0x2EF))
#define byte_7E02F0 (*(uint8*)(g_ram+0x2F0))
#define link_dash_ctr (*(uint8*)(g_ram+0x2F1))
#define tagalong_event_flags (*(uint8*)(g_ram+0x2F2))
#define byte_7E02F3 (*(uint8*)(g_ram+0x2F3))
#define flag_is_sprite_to_pick_up_cached (*(uint8*)(g_ram+0x2F4))
#define player_on_somaria_platform (*(uint8*)(g_ram+0x2F5))
#define tiledetect_misc_tiles (*(uint16*)(g_ram+0x2F6))
#define link_want_make_noise_when_dashed (*(uint8*)(g_ram+0x2F8))
#define tagalong_var5 (*(uint8*)(g_ram+0x2F9))
#define link_is_near_moveable_statue (*(uint8*)(g_ram+0x2FA))
#define player_handler_timer (*(uint8*)(g_ram+0x300))
#define link_item_in_hand (*(uint8*)(g_ram+0x301))
#define fallhole_var1 (*(uint8*)(g_ram+0x302))
#define current_item_y (*(uint8*)(g_ram+0x303))
#define current_item_active (*(uint8*)(g_ram+0x304))
#define debug_var2 (*(uint8*)(g_ram+0x305))
#define unused_2 (*(uint8*)(g_ram+0x306))
#define eq_selected_rod (*(uint8*)(g_ram+0x307))
#define link_state_bits (*(uint8*)(g_ram+0x308))
#define link_picking_throw_state (*(uint8*)(g_ram+0x309))
#define some_animation_timer_steps (*(uint8*)(g_ram+0x30A))
#define some_animation_timer (*(uint8*)(g_ram+0x30B))
#define link_var30d (*(uint8*)(g_ram+0x30D))
#define link_var30e (*(uint8*)(g_ram+0x30E))
#define dung_floor_y_vel (*(uint16*)(g_ram+0x310))
#define dung_floor_x_vel (*(uint16*)(g_ram+0x312))
#define flag_is_sprite_to_pick_up (*(uint8*)(g_ram+0x314))
#define tile_coll_flag (*(uint8*)(g_ram+0x315))
#define byte_7E0316 (*(uint8*)(g_ram+0x316))
#define byte_7E0317 (*(uint8*)(g_ram+0x317))
#define related_to_moving_floor_y (*(uint16*)(g_ram+0x318))
#define related_to_moving_floor_x (*(uint16*)(g_ram+0x31A))
#define state_for_spin_attack (*(uint8*)(g_ram+0x31C))
#define step_counter_for_spin_attack (*(uint8*)(g_ram+0x31D))
#define link_spin_offsets (*(uint8*)(g_ram+0x31E))
#define countdown_for_blink (*(uint8*)(g_ram+0x31F))
#define tiledetect_moving_floor_tiles (*(uint16*)(g_ram+0x320))
#define byte_7E0322 (*(uint8*)(g_ram+0x322))
#define link_direction_facing_mirror (*(uint8*)(g_ram+0x323))
#define byte_7E0324 (*(uint8*)(g_ram+0x324))
#define byte_7E0325 (*(uint8*)(g_ram+0x325))
#define swimcoll_var3 ((uint16*)(g_ram+0x326))
#define link_maybe_swim_faster (*(uint8*)(g_ram+0x32A))
#define swimcoll_var5 ((uint16*)(g_ram+0x32B))
#define swimcoll_var1 ((uint16*)(g_ram+0x32F))
#define byte_7E0333 (*(uint8*)(g_ram+0x333))
#define swimcoll_var9 ((uint16*)(g_ram+0x334))
#define swimcoll_var11 ((uint16*)(g_ram+0x338))
#define swimcoll_var7 ((uint16*)(g_ram+0x33C))
#define link_some_direction_bits (*(uint8*)(g_ram+0x340))
#define tiledetect_deepwater (*(uint16*)(g_ram+0x341))
#define tiledetect_normal_tiles (*(uint16*)(g_ram+0x343))
#define link_is_in_deep_water (*(uint8*)(g_ram+0x345))
#define link_palette_bits_of_oam (*(uint16*)(g_ram+0x346))
#define tiledetect_icy_floor (*(uint16*)(g_ram+0x348))
#define link_flag_moving (*(uint8*)(g_ram+0x34A))
#define eq_debug_variable (*(uint8*)(g_ram+0x34B))
#define tiledetect_water_staircase (*(uint16*)(g_ram+0x34C))
#define byte_7E034E (*(uint8*)(g_ram+0x34E))
#define link_swim_hard_stroke (*(uint8*)(g_ram+0x34F))
#define link_debug_value_2 (*(uint8*)(g_ram+0x350))
#define draw_water_ripples_or_grass (*(uint8*)(g_ram+0x351))
#define sort_sprites_offset_into_oam_buffer (*(uint16*)(g_ram+0x352))
#define value_computed_for_player_oam (*(uint8*)(g_ram+0x354))
#define secondary_water_grass_timer (*(uint8*)(g_ram+0x355))
#define primary_water_grass_timer (*(uint8*)(g_ram+0x356))
#define tiledetect_thick_grass (*(uint16*)(g_ram+0x357))
#define tiledetect_shallow_water (*(uint16*)(g_ram+0x359))
#define tiledetect_destruction_aftermath (*(uint16*)(g_ram+0x35B))
#define oam_priority_value_2 (*(uint16*)(g_ram+0x35D))
#define flag_for_boomerang_in_place (*(uint8*)(g_ram+0x35F))
#define link_electrocute_on_touch (*(uint8*)(g_ram+0x360))
#define link_actual_vel_z_mirror (*(uint8*)(g_ram+0x362))
#define link_actual_vel_z_copy_mirror (*(uint8*)(g_ram+0x363))
#define link_z_coord_mirror (*(uint16*)(g_ram+0x364))
#define tiledetect_read_something (*(uint16*)(g_ram+0x366))
#define interacting_with_liftable_tile_x1 (*(uint8*)(g_ram+0x368))
#define interacting_with_liftable_tile_x1b (*(uint8*)(g_ram+0x369))
#define interacting_with_liftable_tile_x2 (*(uint8*)(g_ram+0x36A))
#define player_unk1 (*(uint8*)(g_ram+0x36B))
#define tile_action_index (*(uint8*)(g_ram+0x36C))
#define tiledetect_vertical_ledge (*(uint8*)(g_ram+0x36D))
#define detection_of_ledge_tiles_horiz_uphoriz (*(uint8*)(g_ram+0x36E))
#define tiledetect_ledges_down_leftright (*(uint8*)(g_ram+0x36F))
#define detection_of_unknown_tile_types (*(uint8*)(g_ram+0x370))
#define link_timer_push_get_tired (*(uint8*)(g_ram+0x371))
#define link_is_running (*(uint8*)(g_ram+0x372))
#define link_give_damage (*(uint8*)(g_ram+0x373))
#define link_countdown_for_dash (*(uint8*)(g_ram+0x374))
#define link_timer_jump_ledge (*(uint8*)(g_ram+0x375))
#define link_grabbing_wall (*(uint8*)(g_ram+0x376))
#define link_unk_master_sword (*(uint8*)(g_ram+0x377))
#define countdown_timer_for_staircases (*(uint8*)(g_ram+0x378))
#define byte_7E0379 (*(uint8*)(g_ram+0x379))
#define link_position_mode (*(uint8*)(g_ram+0x37A))
#define link_disable_sprite_damage (*(uint8*)(g_ram+0x37B))
#define player_sleep_in_bed_state (*(uint8*)(g_ram+0x37C))
#define link_pose_during_opening (*(uint8*)(g_ram+0x37D))
#define related_to_hookshot (*(uint8*)(g_ram+0x37E))
#define cheatWalkThroughWalls (*(uint8*)(g_ram+0x37F))
#define ancilla_K ((uint8*)(g_ram+0x380))
#define ancilla_L ((uint8*)(g_ram+0x385))
#define ancilla_A ((uint8*)(g_ram+0x38A))
#define ancilla_B ((uint8*)(g_ram+0x38F))
#define ancilla_G ((uint8*)(g_ram+0x394))
#define boomerang_temp_y (*(uint16*)(g_ram+0x399))
#define boomerang_temp_x (*(uint16*)(g_ram+0x39B))
#define hookshot_effect_index (*(uint8*)(g_ram+0x39D))
#define ancilla_arr3 ((uint8*)(g_ram+0x39F))
#define ancilla_arr1 ((uint8*)(g_ram+0x3A4))
#define ancilla_S ((uint8*)(g_ram+0x3A9))
#define ancilla_aux_timer ((uint8*)(g_ram+0x3B1))

// relocated those so they have 5 entries each
#define door_debris_x ((uint16*)(g_ram+0x728))
#define door_debris_y ((uint16*)(g_ram+0x732))
#define door_debris_direction ((uint8*)(g_ram+0x73c))
#define ancilla_arr26 ((uint8*)(g_ram+0x741))
#define ancilla_arr25 ((uint8*)(g_ram+0x746))
#define ancilla_arr22 ((uint8*)(g_ram+0x74b))

#define ancilla_alloc_rotate (*(uint8*)(g_ram+0x3C4))
#define ancilla_H ((uint8*)(g_ram+0x3C5))
#define ancilla_floor2 ((uint8*)(g_ram+0x3CA))

// extended the size of this array by merging it with the adjacent one
#define ancilla_arr23 ((uint8*)(g_ram+0x3CF))
#define ancilla_T ((uint8*)(g_ram+0x3D5))
#define ancilla_arr24 ((uint8*)(g_ram+0x3DB))
#define ancilla_tile_attr ((uint8*)(g_ram+0x3E4))
#define link_something_with_hookshot (*(uint8*)(g_ram+0x3E9))
#define ancilla_R ((uint8*)(g_ram+0x3EA))
#define link_force_hold_sword_up (*(uint8*)(g_ram+0x3EF))
#define flute_countdown (*(uint8*)(g_ram+0x3F0))
#define tiledetect_var4 (*(uint16*)(g_ram+0x3F1))
#define link_on_conveyor_belt (*(uint8*)(g_ram+0x3F3))
#define dung_unk6 (*(uint8*)(g_ram+0x3F4))
#define link_timer_tempbunny (*(uint16*)(g_ram+0x3F5))
#define link_need_for_poof_for_transform (*(uint8*)(g_ram+0x3F7))
#define link_need_for_pullforrupees_sprite (*(uint8*)(g_ram+0x3F8))
#define hookshot_var1 (*(uint8*)(g_ram+0x3F9))
#define bit9_of_xcoord (*(uint16*)(g_ram+0x3FA))
#define is_archer_or_shovel_game (*(uint8*)(g_ram+0x3FC))
#define byte_7E03FD (*(uint8*)(g_ram+0x3FD))
#define dung_door_opened (*(uint16*)(g_ram+0x400))
#define dung_savegame_state_bits (*(uint16*)(g_ram+0x402))
#define word_7E0405 (*(uint16*)(g_ram+0x405))
#define dung_quadrants_visited (*(uint16*)(g_ram+0x408))
#define overworld_area_index (*(uint16*)(g_ram+0x40A))
#define cur_palace_index_x2 (*(uint16*)(g_ram+0x40C))
#define dung_layout_and_starting_quadrant (*(uint16*)(g_ram+0x40E))
#define overworld_screen_trans_dir_bits (*(uint16*)(g_ram+0x410))
#define incremental_counter_for_vram (*(uint8*)(g_ram+0x412))
#define dung_hdr_bg2_properties (*(uint8*)(g_ram+0x414))
#define dung_hdr_bg2_properties_PADDING (*(uint8*)(g_ram+0x415))
#define overworld_screen_trans_dir_bits2 (*(uint16*)(g_ram+0x416))
#define overworld_screen_transition (*(uint8*)(g_ram+0x418))
#define overworld_screen_transition_ALWAYSZERO (*(uint8*)(g_ram+0x419))
#define dung_floor_move_flags (*(uint16*)(g_ram+0x41A))
#define dung_some_subpixel ((uint8*)(g_ram+0x41C))
#define moving_wall_var2 (*(uint8*)(g_ram+0x41E))
#define word_7E0420 (*(uint16*)(g_ram+0x420))
#define dung_floor_x_offs (*(uint16*)(g_ram+0x422))
#define dung_floor_y_offs (*(uint16*)(g_ram+0x424))
#define dung_hdr_collision_2_mirror (*(uint8*)(g_ram+0x428))
#define dung_hdr_collision_2_mirror_PADDING (*(uint8*)(g_ram+0x429))
#define moving_wall_var1 (*(uint16*)(g_ram+0x42A))
#define dung_misc_objs_index (*(uint16*)(g_ram+0x42C))
#define dung_index_of_torches (*(uint16*)(g_ram+0x42E))
#define dung_door_switch_triggered (*(uint8*)(g_ram+0x430))
#define dung_num_star_shaped_switches (*(uint16*)(g_ram+0x432))
#define invisible_door_dir_and_index_x2 (*(uint16*)(g_ram+0x436))
#define dung_num_inter_room_upnorth_stairs (*(uint16*)(g_ram+0x438))
#define dung_num_inter_room_southdown_stairs (*(uint16*)(g_ram+0x43A))
#define dung_num_inroom_upnorth_stairs (*(uint16*)(g_ram+0x43C))
#define dung_num_inroom_southdown_stairs (*(uint16*)(g_ram+0x43E))
#define dung_num_interpseudo_upnorth_stairs (*(uint16*)(g_ram+0x440))
#define dung_num_inroom_upnorth_stairs_water (*(uint16*)(g_ram+0x442))
#define dung_num_activated_water_ladders (*(uint16*)(g_ram+0x444))
#define dung_num_water_ladders (*(uint16*)(g_ram+0x446))
#define dung_some_stairs_unk4 (*(uint16*)(g_ram+0x448))
#define kind_of_in_room_staircase (*(uint16*)(g_ram+0x44A))
#define dung_num_toggle_floor (*(uint16*)(g_ram+0x44E))
#define dung_num_toggle_palace (*(uint16*)(g_ram+0x450))
#define dung_blastwall_flag_x (*(uint8*)(g_ram+0x452))
#define dung_blastwall_flag_y (*(uint8*)(g_ram+0x453))
#define dung_unk_blast_walls_2 (*(uint16*)(g_ram+0x454))
#define dung_unk_blast_walls_3 (*(uint16*)(g_ram+0x456))
#define hdr_dungeon_dark_with_lantern (*(uint8*)(g_ram+0x458))
#define hdr_dungeon_dark_with_lantern_PADDING (*(uint8*)(g_ram+0x459))
#define dung_num_lit_torches (*(uint8*)(g_ram+0x45A))
#define dung_num_lit_torches_PADDING (*(uint8*)(g_ram+0x45B))
#define dung_cur_quadrant_upload (*(uint8*)(g_ram+0x45C))
#define dung_cur_quadrant_upload_PADDING (*(uint8*)(g_ram+0x45D))
#define word_7E045E (*(uint16*)(g_ram+0x45E))
#define dung_cur_door_idx (*(uint16*)(g_ram+0x460))
#define which_staircase_index (*(uint8*)(g_ram+0x462))
#define which_staircase_index_PADDING (*(uint8*)(g_ram+0x463))
#define staircase_var1 (*(uint8*)(g_ram+0x464))
#define related_to_trapdoors_somehow (*(uint16*)(g_ram+0x466))
#define dung_flag_trapdoors_down (*(uint16*)(g_ram+0x468))
#define dung_floor_2_filler_tiles (*(uint16*)(g_ram+0x46A))
#define dung_hdr_collision (*(uint8*)(g_ram+0x46C))
#define watergate_var1 (*(uint8*)(g_ram+0x470))
#define watergate_var1_PADDING (*(uint8*)(g_ram+0x471))
#define watergate_pos (*(uint16*)(g_ram+0x472))
#define push_block_direction (*(uint8*)(g_ram+0x474))
#define link_is_on_lower_level_mirror (*(uint8*)(g_ram+0x476))
#define dung_index_of_torches_start (*(uint16*)(g_ram+0x478))
#define about_to_jump_off_ledge (*(uint8*)(g_ram+0x47A))
#define word_7E047C (*(uint16*)(g_ram+0x47C))
#define dung_num_wall_upnorth_spiral_stairs (*(uint16*)(g_ram+0x47E))
#define dung_num_wall_downnorth_spiral_stairs (*(uint16*)(g_ram+0x480))
#define dung_num_wall_upnorth_spiral_stairs_2 (*(uint16*)(g_ram+0x482))
#define dung_num_wall_downnorth_spiral_stairs_2 (*(uint16*)(g_ram+0x484))
#define word_7E0486 (*(uint16*)(g_ram+0x486))
#define word_7E0488 (*(uint16*)(g_ram+0x488))
#define cur_staircase_plane (*(uint8*)(g_ram+0x48A))
#define word_7E048C (*(uint16*)(g_ram+0x48C))
#define dungeon_room_index2 (*(uint16*)(g_ram+0x48E))
#define dung_floor_1_filler_tiles (*(uint16*)(g_ram+0x490))
#define byte_7E0492 (*(uint8*)(g_ram+0x492))
#define move_overlay_ctr (*(uint8*)(g_ram+0x494))
#define dung_num_chests_x2 (*(uint16*)(g_ram+0x496))
#define dung_num_bigkey_locks_x2 (*(uint16*)(g_ram+0x498))
#define dung_num_stairs_1 (*(uint16*)(g_ram+0x49A))
#define dung_num_stairs_2 (*(uint16*)(g_ram+0x49C))
#define dung_num_stairs_wet (*(uint16*)(g_ram+0x49E))
#define hud_floor_changed_timer (*(uint8*)(g_ram+0x4A0))
#define dung_num_inter_room_upnorth_straight_stairs (*(uint16*)(g_ram+0x4A2))
#define dung_num_inter_room_upsouth_straight_stairs (*(uint16*)(g_ram+0x4A4))
#define dung_num_inter_room_downnorth_straight_stairs (*(uint16*)(g_ram+0x4A6))
#define dung_num_inter_room_downsouth_straight_stairs (*(uint16*)(g_ram+0x4A8))
#define death_var4 (*(uint8*)(g_ram+0x4AA))
#define num_memorized_tiles (*(uint16*)(g_ram+0x4AC))
#define dung_num_inroom_upsouth_stairs_water (*(uint16*)(g_ram+0x4AE))
#define dung_unk5 (*(uint16*)(g_ram+0x4B0))
#define word_7E04B2 (*(uint16*)(g_ram+0x4B2))
#define super_bomb_indicator_unk2 (*(uint8*)(g_ram+0x4B4))
#define super_bomb_indicator_unk1 (*(uint8*)(g_ram+0x4B5))
#define word_7E04B6 (*(uint16*)(g_ram+0x4B6))
#define big_key_door_message_triggered (*(uint16*)(g_ram+0x4B8))
#define dung_overlay_to_load (*(uint8*)(g_ram+0x4BA))
#define byte_7E04BC (*(uint8*)(g_ram+0x4BC))
#define byte_7E04BE (*(uint8*)(g_ram+0x4BE))
#define byte_7E04BF (*(uint8*)(g_ram+0x4BF))
#define byte_7E04C0 (*(uint8*)(g_ram+0x4C0))
#define byte_7E04C1 (*(uint8*)(g_ram+0x4C1))
#define byte_7E04C2 (*(uint8*)(g_ram+0x4C2))
#define minigame_credits (*(uint8*)(g_ram+0x4C4))
#define byte_7E04C5 (*(uint8*)(g_ram+0x4C5))
#define trigger_special_entrance (*(uint8*)(g_ram+0x4C6))
#define flag_skip_call_tag_routines (*(uint8*)(g_ram+0x4C7))
#define word_7E04C8 (*(uint16*)(g_ram+0x4C8))
#define link_lowlife_countdown_timer_beep (*(uint8*)(g_ram+0x4CA))
#define dung_torch_timers ((uint8*)(g_ram+0x4F0))
#define dung_replacement_tile_state ((uint16*)(g_ram+0x500))
#define dung_object_pos_in_objdata ((uint16*)(g_ram+0x520))
#define dung_object_tilemap_pos ((uint16*)(g_ram+0x540))
#define replacement_tilemap_UL ((uint16*)(g_ram+0x560))
#define replacement_tilemap_LL ((uint16*)(g_ram+0x580))
#define replacement_tilemap_UR ((uint16*)(g_ram+0x5A0))
#define replacement_tilemap_LR ((uint16*)(g_ram+0x5C0))
#define pushedblocks_x_hi ((uint16*)(g_ram+0x5E0))
#define pushedblocks_x_lo ((uint16*)(g_ram+0x5E4))
#define pushedblocks_target ((uint16*)(g_ram+0x5E8))
#define pushedblocks_y_hi ((uint16*)(g_ram+0x5EC))
#define pushedblocks_y_lo ((uint16*)(g_ram+0x5F0))
#define pushedblocks_subpixel ((uint16*)(g_ram+0x5F4))
#define pushedblock_facing ((uint16*)(g_ram+0x5F8))
#define index_of_changable_dungeon_objs ((uint8*)(g_ram+0x5FC))
#define up_down_scroll_target (*(uint16*)(g_ram+0x610))
#define up_down_scroll_target_end (*(uint16*)(g_ram+0x612))
#define left_right_scroll_target (*(uint16*)(g_ram+0x614))
#define left_right_scroll_target_end (*(uint16*)(g_ram+0x616))
#define camera_y_coord_scroll_low (*(uint16*)(g_ram+0x618))
#define camera_y_coord_scroll_hi (*(uint16*)(g_ram+0x61A))
#define camera_x_coord_scroll_low (*(uint16*)(g_ram+0x61C))
#define camera_x_coord_scroll_hi (*(uint16*)(g_ram+0x61E))
#define BG1HOFS_subpixel (*(uint16*)(g_ram+0x620))
#define BG1VOFS_subpixel (*(uint16*)(g_ram+0x622))
#define overworld_unk1 (*(uint16*)(g_ram+0x624))
#define overworld_unk1_neg (*(uint16*)(g_ram+0x626))
#define overworld_unk3 (*(uint16*)(g_ram+0x628))
#define overworld_unk3_neg (*(uint16*)(g_ram+0x62A))
#define dung_loade_bgoffs_h_copy (*(uint16*)(g_ram+0x62C))
#define dung_loade_bgoffs_v_copy (*(uint16*)(g_ram+0x62E))
#define byte_7E0630 (*(uint8*)(g_ram+0x630))
#define byte_7E0631 (*(uint8*)(g_ram+0x631))
#define byte_7E0635 (*(uint8*)(g_ram+0x635))
#define overworld_map_flags (*(uint8*)(g_ram+0x636))
#define timer_for_mode7_zoom (*(uint8*)(g_ram+0x637))
#define M7X_copy (*(uint16*)(g_ram+0x638))
#define M7Y_copy (*(uint16*)(g_ram+0x63A))
#define dung_hdr_hole_teleporter_plane (*(uint8*)(g_ram+0x63C))
#define dung_hdr_staircase_plane ((uint8*)(g_ram+0x63D))
#define dung_flag_movable_block_was_pushed (*(uint8*)(g_ram+0x641))
#define dung_flag_statechange_waterpuzzle (*(uint8*)(g_ram+0x642))
#define dung_flag_somaria_block_switch (*(uint8*)(g_ram+0x646))
#define mosaic_inc_or_dec (*(uint8*)(g_ram+0x647))
#define spotlight_var3 (*(uint16*)(g_ram+0x670))
#define spotlight_y_lower (*(uint16*)(g_ram+0x674))
#define spotlight_y_upper (*(uint16*)(g_ram+0x676))
#define word_7E0678 (*(uint16*)(g_ram+0x678))
#define spotlight_var4 (*(uint16*)(g_ram+0x67A))
#define spotlight_var1 (*(uint16*)(g_ram+0x67C))
#define spotlight_var2 (*(uint16*)(g_ram+0x67E))
#define water_hdma_var0 (*(uint16*)(g_ram+0x680))
#define water_hdma_var1 (*(uint16*)(g_ram+0x682))
#define water_hdma_var2 (*(uint16*)(g_ram+0x684))
#define water_hdma_var3 (*(uint16*)(g_ram+0x686))
#define water_hdma_var4 (*(uint16*)(g_ram+0x688))
#define water_hdma_var5 (*(uint16*)(g_ram+0x68A))
#define dung_door_opened_incl_adjacent (*(uint16*)(g_ram+0x68C))
#define dung_cur_door_pos (*(uint16*)(g_ram+0x68E))
#define door_animation_step_indicator (*(uint16*)(g_ram+0x690))
#define door_open_closed_counter (*(uint16*)(g_ram+0x692))
#define dung_which_key_x2 (*(uint16*)(g_ram+0x694))
#define ow_entrance_value (*(uint16*)(g_ram+0x696))
#define big_rock_starting_address (*(uint16*)(g_ram+0x698))
#define ow_countdown_transition (*(uint8*)(g_ram+0x69A))
#define byte_7E069C (*(uint8*)(g_ram+0x69C))
#define byte_7E069E ((uint8*)(g_ram+0x69E))
#define dung_toggle_floor_pos ((uint16*)(g_ram+0x6C0))
#define dung_toggle_palace_pos ((uint16*)(g_ram+0x6D0))
#define dung_chest_locations ((uint16*)(g_ram+0x6E0))
#define dung_stairs_table_2 ((uint16*)(g_ram+0x6EC))
#define current_area_of_player (*(uint16*)(g_ram+0x700))
#define overworld_offset_base_y (*(uint16*)(g_ram+0x708))
#define overworld_offset_mask_y (*(uint16*)(g_ram+0x70A))
#define overworld_offset_base_x (*(uint16*)(g_ram+0x70C))
#define overworld_offset_mask_x (*(uint16*)(g_ram+0x70E))
#define nmi_disable_core_updates (*(uint8*)(g_ram+0x710))
#define overworld_area_is_big (*(uint16*)(g_ram+0x712))
#define overworld_area_is_big_backup (*(uint8*)(g_ram+0x714))
#define overworld_right_bottom_bound_for_scroll (*(uint16*)(g_ram+0x716))
#define vwf_flag_next_line (*(uint16*)(g_ram+0x720))
#define vwf_curline (*(uint16*)(g_ram+0x722))
#define vwf_var1 (*(uint16*)(g_ram+0x724))
#define vwf_line_ptr (*(uint16*)(g_ram+0x726))
#define extended_oam ((uint8*)(g_ram+0xA00))
#define bytewise_extended_oam ((uint8*)(g_ram+0xA20))
#define byte_7E0AA0 (*(uint8*)(g_ram+0xAA0))
#define main_tile_theme_index (*(uint8*)(g_ram+0xAA1))
#define aux_tile_theme_index (*(uint8*)(g_ram+0xAA2))
#define sprite_graphics_index (*(uint8*)(g_ram+0xAA3))
#define misc_sprites_graphics_index (*(uint8*)(g_ram+0xAA4))
#define unused_config_gfx (*(uint16*)(g_ram+0xAA6))
#define overworld_palette_aux_or_main (*(uint16*)(g_ram+0xAA8))
#define load_chr_halfslot_even_odd (*(uint8*)(g_ram+0xAAA))
#define palette_sp0l (*(uint8*)(g_ram+0xAAC))
#define palette_sp5l (*(uint8*)(g_ram+0xAAD))
#define palette_sp6l (*(uint8*)(g_ram+0xAAE))
#define byte_7E0AB0 (*(uint8*)(g_ram+0xAB0))
#define palette_sp6r_indoors (*(uint8*)(g_ram+0xAB1))
#define hud_palette (*(uint8*)(g_ram+0xAB2))
#define overworld_palette_mode (*(uint8*)(g_ram+0xAB3))
#define overworld_palette_aux1_bp2to4_hi (*(uint8*)(g_ram+0xAB4))
#define overworld_palette_aux2_bp5to7_hi (*(uint8*)(g_ram+0xAB5))
#define palette_main_indoors (*(uint8*)(g_ram+0xAB6))
#define byte_7E0AB7 (*(uint8*)(g_ram+0xAB7))
#define overworld_palette_aux3_bp7_lo (*(uint8*)(g_ram+0xAB8))
#define palette_swap_flag (*(uint8*)(g_ram+0xABD))
#define flag_overworld_area_did_change (*(uint8*)(g_ram+0xABF))
#define dma_source_addr_6 (*(uint16*)(g_ram+0xAC0))
#define dma_source_addr_11 (*(uint16*)(g_ram+0xAC2))
#define dma_source_addr_7 (*(uint16*)(g_ram+0xAC4))
#define dma_source_addr_12 (*(uint16*)(g_ram+0xAC6))
#define dma_source_addr_8 (*(uint16*)(g_ram+0xAC8))
#define dma_source_addr_13 (*(uint16*)(g_ram+0xACA))
#define dma_source_addr_3 (*(uint16*)(g_ram+0xACC))
#define dma_source_addr_0 (*(uint16*)(g_ram+0xACE))
#define dma_source_addr_4 (*(uint16*)(g_ram+0xAD0))
#define dma_source_addr_1 (*(uint16*)(g_ram+0xAD2))
#define dma_source_addr_5 (*(uint16*)(g_ram+0xAD4))
#define dma_source_addr_2 (*(uint16*)(g_ram+0xAD6))
#define dma_source_addr_10 (*(uint16*)(g_ram+0xAD8))
#define dma_source_addr_15 (*(uint16*)(g_ram+0xADA))
#define animated_tile_data_src (*(uint16*)(g_ram+0xADC))
#define dma_source_addr_9 (*(uint16*)(g_ram+0xAE0))
#define dma_source_addr_14 (*(uint16*)(g_ram+0xAE2))
#define dma_var6 (*(uint16*)(g_ram+0xAE8))
#define dma_var7 (*(uint16*)(g_ram+0xAEA))
#define dma_source_addr_16 (*(uint16*)(g_ram+0xAEC))
#define dma_source_addr_18 (*(uint16*)(g_ram+0xAEE))
#define dma_source_addr_17 (*(uint16*)(g_ram+0xAF0))
#define dma_source_addr_19 (*(uint16*)(g_ram+0xAF2))
#define flag_travel_bird (*(uint16*)(g_ram+0xAF4))
#define dma_source_addr_20 (*(uint16*)(g_ram+0xAF6))
#define dma_source_addr_21 (*(uint16*)(g_ram+0xAF8))
#define overlord_type ((uint8*)(g_ram+0xB00))
#define overlord_x_lo ((uint8*)(g_ram+0xB08))
#define overlord_x_hi ((uint8*)(g_ram+0xB10))
#define overlord_y_lo ((uint8*)(g_ram+0xB18))
#define overlord_y_hi ((uint8*)(g_ram+0xB20))
#define overlord_gen1 ((uint8*)(g_ram+0xB28))
#define overlord_gen2 ((uint8*)(g_ram+0xB30))
#define overlord_gen3 ((uint8*)(g_ram+0xB38))
#define overlord_floor ((uint8*)(g_ram+0xB40))
#define overlord_offset_sprite_pos ((uint16*)(g_ram+0xB48))
#define sprite_stunned ((uint8*)(g_ram+0xB58))
#define repulsespark_floor_status (*(uint8*)(g_ram+0xB68))
#define byte_7E0B69 (*(uint8*)(g_ram+0xB69))
#define sprite_limit_instance (*(uint8*)(g_ram+0xB6A))
#define sprite_flags ((uint8*)(g_ram+0xB6B))
#define link_prevent_from_moving (*(uint8*)(g_ram+0xB7B))
#define drag_player_x (*(uint16*)(g_ram+0xB7C))
#define drag_player_y (*(uint16*)(g_ram+0xB7E))
#define dungeon_room_history ((uint16*)(g_ram+0xB80))
#define byte_7E0B88 (*(uint8*)(g_ram+0xB88))
#define sprite_obj_prio ((uint8*)(g_ram+0xB89))
#define archery_game_arrows_left (*(uint8*)(g_ram+0xB99))
#define archery_game_out_of_arrows (*(uint8*)(g_ram+0xB9A))
#define byte_7E0B9B (*(uint8*)(g_ram+0xB9B))
#define dung_secrets_unk1 (*(uint16*)(g_ram+0xB9C))
#define byte_7E0B9E (*(uint8*)(g_ram+0xB9E))
#define sprite_ignore_projectile ((uint8*)(g_ram+0xBA0))
#define sprite_unk2 ((uint8*)(g_ram+0xBB0))
#define sprite_N ((uint8*)(g_ram+0xBC0))
#define sprite_flags5 ((uint8*)(g_ram+0xBE0))
#define ancilla_arr4 ((uint8*)(g_ram+0xBF0))
#define ancilla_y_lo ((uint8*)(g_ram+0xBFA))
#define ancilla_x_lo ((uint8*)(g_ram+0xC04))
#define ancilla_y_hi ((uint8*)(g_ram+0xC0E))
#define ancilla_x_hi ((uint8*)(g_ram+0xC18))
#define ancilla_y_vel ((uint8*)(g_ram+0xC22))
#define ancilla_x_vel ((uint8*)(g_ram+0xC2C))
#define ancilla_y_subpixel ((uint8*)(g_ram+0xC36))
#define ancilla_x_subpixel ((uint8*)(g_ram+0xC40))
#define ancilla_type ((uint8*)(g_ram+0xC4A))
#define ancilla_step ((uint8*)(g_ram+0xC54))
#define ancilla_item_to_link ((uint8*)(g_ram+0xC5E))
#define ancilla_timer ((uint8*)(g_ram+0xC68))
#define ancilla_dir ((uint8*)(g_ram+0xC72))
#define ancilla_floor ((uint8*)(g_ram+0xC7C))
#define ancilla_oam_idx ((uint8*)(g_ram+0xC86))
#define ancilla_numspr ((uint8*)(g_ram+0xC90))
#define sprite_room ((uint8*)(g_ram+0xC9A))
#define sprite_defl_bits ((uint8*)(g_ram+0xCAA))
#define sprite_die_action ((uint8*)(g_ram+0xCBA))
#define overlord_spawned_in_area ((uint8*)(g_ram+0xCCA))
#define sprite_bump_damage ((uint8*)(g_ram+0xCD2))
#define sprite_give_damage ((uint8*)(g_ram+0xCE2))
#define damage_type_determiner (*(uint8*)(g_ram+0xCF2))
#define damage_type_determiner_PADDING (*(uint8*)(g_ram+0xCF3))
#define activate_bomb_trap_overlord (*(uint8*)(g_ram+0xCF4))
#define dungmap_var6 (*(uint16*)(g_ram+0xCF5))
#define overworld_secret_subst_ctr (*(uint8*)(g_ram+0xCF7))
#define byte_7E0CF8 (*(uint8*)(g_ram+0xCF8))
#define item_drop_luck (*(uint8*)(g_ram+0xCF9))
#define luck_kill_counter (*(uint8*)(g_ram+0xCFA))
#define num_sprites_killed (*(uint8*)(g_ram+0xCFB))
#define number_of_times_hurt_by_sprites (*(uint8*)(g_ram+0xCFC))
#define rupee_sfx_sound_delay (*(uint8*)(g_ram+0xCFD))
#define word_7E0CFE (*(uint16*)(g_ram+0xCFE))
#define sprite_y_lo ((uint8*)(g_ram+0xD00))
#define sprite_x_lo ((uint8*)(g_ram+0xD10))
#define sprite_y_hi ((uint8*)(g_ram+0xD20))
#define sprite_x_hi ((uint8*)(g_ram+0xD30))
#define sprite_y_vel ((uint8*)(g_ram+0xD40))
#define sprite_x_vel ((uint8*)(g_ram+0xD50))
#define sprite_y_subpixel ((uint8*)(g_ram+0xD60))
#define sprite_x_subpixel ((uint8*)(g_ram+0xD70))
#define sprite_ai_state ((uint8*)(g_ram+0xD80))
#define sprite_A ((uint8*)(g_ram+0xD90))
#define sprite_B ((uint8*)(g_ram+0xDA0))
#define sprite_C ((uint8*)(g_ram+0xDB0))
#define sprite_graphics ((uint8*)(g_ram+0xDC0))
#define sprite_state ((uint8*)(g_ram+0xDD0))
#define sprite_D ((uint8*)(g_ram+0xDE0))
#define sprite_delay_main ((uint8*)(g_ram+0xDF0))
#define sprite_delay_aux1 ((uint8*)(g_ram+0xE00))
#define sprite_delay_aux2 ((uint8*)(g_ram+0xE10))
#define sprite_type ((uint8*)(g_ram+0xE20))
#define sprite_subtype ((uint8*)(g_ram+0xE30))
#define sprite_flags2 ((uint8*)(g_ram+0xE40))
#define sprite_health ((uint8*)(g_ram+0xE50))
#define sprite_flags3 ((uint8*)(g_ram+0xE60))
#define sprite_wallcoll ((uint8*)(g_ram+0xE70))
#define sprite_subtype2 ((uint8*)(g_ram+0xE80))
#define sprite_E ((uint8*)(g_ram+0xE90))
#define sprite_F ((uint8*)(g_ram+0xEA0))
#define sprite_head_dir ((uint8*)(g_ram+0xEB0))
#define sprite_anim_clock ((uint8*)(g_ram+0xEC0))
#define sprite_G ((uint8*)(g_ram+0xED0))
#define sprite_delay_aux3 ((uint8*)(g_ram+0xEE0))
#define sprite_hit_timer ((uint8*)(g_ram+0xEF0))
#define sprite_pause ((uint8*)(g_ram+0xF00))
#define sprite_delay_aux4 ((uint8*)(g_ram+0xF10))
#define sprite_floor ((uint8*)(g_ram+0xF20))
#define sprite_y_recoil ((uint8*)(g_ram+0xF30))
#define sprite_x_recoil ((uint8*)(g_ram+0xF40))
#define sprite_oam_flags ((uint8*)(g_ram+0xF50))
#define sprite_flags4 ((uint8*)(g_ram+0xF60))
#define sprite_z ((uint8*)(g_ram+0xF70))
#define sprite_z_vel ((uint8*)(g_ram+0xF80))
#define sprite_z_subpos ((uint8*)(g_ram+0xF90))
#define cur_object_index (*(uint8*)(g_ram+0xFA0))
#define byte_7E0FA1 (*(uint8*)(g_ram+0xFA1))
#define sprite_tiletype (*(uint8*)(g_ram+0xFA5))
#define dungmap_var7 (*(uint16*)(g_ram+0xFA8))
#define dungmap_var8 (*(uint16*)(g_ram+0xFAA))
#define repulsespark_timer (*(uint8*)(g_ram+0xFAC))
#define repulsespark_x_lo (*(uint8*)(g_ram+0xFAD))
#define repulsespark_y_lo (*(uint8*)(g_ram+0xFAE))
#define repulsespark_anim_delay (*(uint8*)(g_ram+0xFAF))
#define byte_7E0FB0 (*(uint8*)(g_ram+0xFB0))
#define byte_7E0FB1 (*(uint8*)(g_ram+0xFB1))
#define byte_7E0FB2 (*(uint8*)(g_ram+0xFB2))
#define sort_sprites_setting (*(uint8*)(g_ram+0xFB3))
#define garnish_active (*(uint8*)(g_ram+0xFB4))
#define tmp_counter (*(uint8*)(g_ram+0xFB5))
#define byte_7E0FB6 (*(uint8*)(g_ram+0xFB6))
#define spr_ranged_based_toggler (*(uint8*)(g_ram+0xFB7))
#define sprcoll_x_size (*(uint16*)(g_ram+0xFB8))
#define sprcoll_y_size (*(uint16*)(g_ram+0xFBA))
#define sprcoll_x_base (*(uint16*)(g_ram+0xFBC))
#define sprcoll_y_base (*(uint16*)(g_ram+0xFBE))
#define flag_unk1 (*(uint8*)(g_ram+0xFC1))
#define link_x_coord_prev (*(uint16*)(g_ram+0xFC2))
#define link_y_coord_prev (*(uint16*)(g_ram+0xFC4))
#define byte_7E0FC6 (*(uint8*)(g_ram+0xFC6))
#define prizes_arr1 ((uint8*)(g_ram+0xFC7))
#define debug_game_frozen (*(uint8*)(g_ram+0xFD7))
#define cur_sprite_x (*(uint16*)(g_ram+0xFD8))
#define cur_sprite_y (*(uint16*)(g_ram+0xFDA))
#define sprite_alert_flag (*(uint8*)(g_ram+0xFDC))
#define byte_7E0FDD (*(uint8*)(g_ram+0xFDD))
#define byte_7E0FDE (*(uint8*)(g_ram+0xFDE))
#define oam_region_base ((uint16*)(g_ram+0xFE0))
#define oam_alloc_arr1 ((uint16*)(g_ram+0xFEC))
#define byte_7E0FF8 (*(uint8*)(g_ram+0xFF8))
#define intro_times_pal_flash (*(uint8*)(g_ram+0xFF9))
#define alt_sprites_flag (*(uint8*)(g_ram+0xFFA))
#define byte_7E0FFB (*(uint8*)(g_ram+0xFFB))
#define flag_block_link_menu (*(uint8*)(g_ram+0xFFC))
#define byte_7E0FFD (*(uint8*)(g_ram+0xFFD))
#define byte_7E0FFE (*(uint8*)(g_ram+0xFFE))
#define is_in_dark_world (*(uint8*)(g_ram+0xFFF))
#define word_7E1800 (*(uint16*)(g_ram+0x1800))
#define word_7E1806 (*(uint16*)(g_ram+0x1806))
#define word_7E197E (*(uint16*)(g_ram+0x197E))
#define door_type_and_slot ((uint16*)(g_ram+0x1980))
#define dung_door_tilemap_address ((uint16*)(g_ram+0x19A0))
#define dung_door_direction ((uint16*)(g_ram+0x19C0))
#define dung_exit_door_count (*(uint16*)(g_ram+0x19E0))
#define dung_exit_door_addresses ((uint16*)(g_ram+0x19E2))
#define tagalong_y_lo ((uint8*)(g_ram+0x1A00))
#define tagalong_y_hi ((uint8*)(g_ram+0x1A14))
#define tagalong_x_lo ((uint8*)(g_ram+0x1A28))
#define tagalong_x_hi ((uint8*)(g_ram+0x1A3C))
#define tagalong_z ((uint8*)(g_ram+0x1A50))
#define tagalong_layerbits ((uint8*)(g_ram+0x1A64))
#define bird_travel_x_lo ((uint8*)(g_ram+0x1AB0))
#define bird_travel_x_hi ((uint8*)(g_ram+0x1AC0))
#define bird_travel_y_lo ((uint8*)(g_ram+0x1AD0))
#define bird_travel_y_hi ((uint8*)(g_ram+0x1AE0))
#define birdtravel_var1 ((uint8*)(g_ram+0x1AF0))
#define text_msgbox_topleft_copy (*(uint16*)(g_ram+0x1CD0))
#define text_msgbox_topleft (*(uint16*)(g_ram+0x1CD2))
#define text_render_state (*(uint8*)(g_ram+0x1CD4))
#define vwf_line_mode (*(uint8*)(g_ram+0x1CD5))
#define vwf_line_speed (*(uint8*)(g_ram+0x1CD6))
#define text_incremental_state (*(uint8*)(g_ram+0x1CD7))
#define messaging_module (*(uint8*)(g_ram+0x1CD8))
#define dialogue_msg_dst_offs (*(uint16*)(g_ram+0x1CD9))
#define byte_7E1CDC (*(uint8*)(g_ram+0x1CDC))
#define dialogue_msg_src_offs (*(uint16*)(g_ram+0x1CDD))
#define byte_7E1CDF (*(uint8*)(g_ram+0x1CDF))
#define text_wait_countdown (*(uint16*)(g_ram+0x1CE0))
#define text_tilemap_cur (*(uint16*)(g_ram+0x1CE2))
#define text_next_position (*(uint8*)(g_ram+0x1CE6))
#define choice_in_multiselect_box (*(uint8*)(g_ram+0x1CE8))
#define text_wait_countdown2 (*(uint8*)(g_ram+0x1CE9))
#define byte_7E1CEA (*(uint8*)(g_ram+0x1CEA))
#define dialogue_message_index (*(uint16*)(g_ram+0x1CF0))
#define byte_7E1CF2 ((uint8*)(g_ram+0x1CF2))
#define choice_in_multiselect_box_bak (*(uint8*)(g_ram+0x1CF4))
#define alt_sprite_state ((uint8*)(g_ram+0x1D00))
#define alt_sprite_type ((uint8*)(g_ram+0x1D10))
#define alt_sprite_x_lo ((uint8*)(g_ram+0x1D20))
#define alt_sprite_x_hi ((uint8*)(g_ram+0x1D30))
#define alt_sprite_y_lo ((uint8*)(g_ram+0x1D40))
#define alt_sprite_y_hi ((uint8*)(g_ram+0x1D50))
#define alt_sprite_graphics ((uint8*)(g_ram+0x1D60))
#define alt_sprite_A ((uint8*)(g_ram+0x1D70))
#define alt_sprite_head_dir ((uint8*)(g_ram+0x1D80))
#define alt_sprite_oam_flags ((uint8*)(g_ram+0x1D90))
#define alt_sprite_obj_prio ((uint8*)(g_ram+0x1DA0))
#define alt_sprite_D ((uint8*)(g_ram+0x1DB0))
#define alt_sprite_flags2 ((uint8*)(g_ram+0x1DC0))
#define alt_sprite_floor ((uint8*)(g_ram+0x1DD0))
#define alt_sprite_spawned_flag ((uint8*)(g_ram+0x1DE0))
#define alt_sprite_flags3 ((uint8*)(g_ram+0x1DF0))
#define intro_step_index (*(uint8*)(g_ram+0x1E00))
#define intro_step_timer (*(uint8*)(g_ram+0x1E01))
#define intro_want_double_ret (*(uint8*)(g_ram+0x1E02))
#define intro_sprite_alloc (*(uint16*)(g_ram+0x1E08))
#define intro_frame_ctr (*(uint8*)(g_ram+0x1E0A))
#define triforce_ctr (*(uint16*)(g_ram+0x1E0C))
#define intro_sprite_isinited ((uint8*)(g_ram+0x1E10))
#define intro_sprite_subtype ((uint8*)(g_ram+0x1E18))
#define intro_sprite_state ((uint8*)(g_ram+0x1E20))
#define intro_x_subpixel ((uint8*)(g_ram+0x1E28))
#define intro_x_lo ((uint8*)(g_ram+0x1E30))
#define intro_x_hi ((uint8*)(g_ram+0x1E38))
#define intro_y_subpixel ((uint8*)(g_ram+0x1E40))
#define intro_y_lo ((uint8*)(g_ram+0x1E48))
#define intro_y_hi ((uint8*)(g_ram+0x1E50))
#define intro_x_vel ((uint8*)(g_ram+0x1E58))
#define intro_y_vel ((uint8*)(g_ram+0x1E60))
#define intro_did_run_step (*(uint8*)(g_ram+0x1F00))
#define poly_config_color_mode (*(uint8*)(g_ram+0x1F01))
#define poly_config1 (*(uint8*)(g_ram+0x1F02))
#define poly_which_model (*(uint8*)(g_ram+0x1F03))
#define poly_a (*(uint8*)(g_ram+0x1F04))
#define poly_b (*(uint8*)(g_ram+0x1F05))
#define poly_base_x (*(uint8*)(g_ram+0x1F06))
#define poly_base_y (*(uint8*)(g_ram+0x1F07))
#define poly_var1 (*(uint16*)(g_ram+0x1F08))
#define thread_other_stack (*(uint16*)(g_ram+0x1F0A))
#define nmi_flag_update_polyhedral (*(uint8*)(g_ram+0x1F0C))
#define poly_config_num_vertex (*(uint8*)(g_ram+0x1F3F))
#define poly_config_num_polys (*(uint8*)(g_ram+0x1F40))
#define poly_fromlut_ptr2 (*(uint16*)(g_ram+0x1F41))
#define poly_fromlut_ptr4 (*(uint16*)(g_ram+0x1F43))
#define poly_fromlut_z (*(uint8*)(g_ram+0x1F45))
#define poly_fromlut_y (*(uint8*)(g_ram+0x1F46))
#define poly_fromlut_x (*(uint8*)(g_ram+0x1F47))
#define poly_f0 (*(uint16*)(g_ram+0x1F48))
#define poly_f1 (*(uint16*)(g_ram+0x1F4A))
#define poly_f2 (*(uint16*)(g_ram+0x1F4C))
#define poly_num_vertex_in_poly (*(uint8*)(g_ram+0x1F4E))
#define poly_raster_color_config (*(uint8*)(g_ram+0x1F4F))
#define poly_sin_a (*(uint16*)(g_ram+0x1F50))
#define poly_cos_a (*(uint16*)(g_ram+0x1F52))
#define poly_sin_b (*(uint16*)(g_ram+0x1F54))
#define poly_cos_b (*(uint16*)(g_ram+0x1F56))
#define poly_e0 (*(uint16*)(g_ram+0x1F58))
#define poly_e2 (*(uint16*)(g_ram+0x1F5A))
#define poly_e3 (*(uint16*)(g_ram+0x1F5C))
#define poly_e1 (*(uint16*)(g_ram+0x1F5E))
#define poly_arr_x ((uint8*)(g_ram+0x1F60))
#define poly_arr_y ((uint8*)(g_ram+0x1F88))
#define poly_tmp0 (*(uint16*)(g_ram+0x1FB0))
#define poly_tmp1 (*(uint16*)(g_ram+0x1FB2))
#define poly_raster_color0 (*(uint16*)(g_ram+0x1FB5))
#define poly_raster_color1 (*(uint16*)(g_ram+0x1FB7))
#define poly_raster_dst_ptr (*(uint16*)(g_ram+0x1FB9))
#define poly_tmp2 (*(uint8*)(g_ram+0x1FBC))
#define poly_arr_xy_coords_minus1 (*(uint8*)(g_ram+0x1FBF))
#define poly_xy_coords ((uint8*)(g_ram+0x1FC0))
#define poly_total_num_steps (*(uint8*)(g_ram+0x1FE0))
#define poly_x0_cur (*(uint8*)(g_ram+0x1FE1))
#define poly_y0_cur (*(uint8*)(g_ram+0x1FE2))
#define poly_x0_target (*(uint8*)(g_ram+0x1FE3))
#define poly_y0_trig (*(uint8*)(g_ram+0x1FE4))
#define poly_x0_frac (*(uint16*)(g_ram+0x1FE5))
#define poly_x0_step (*(uint16*)(g_ram+0x1FE7))
#define poly_cur_vertex_idx0 (*(uint8*)(g_ram+0x1FE9))
#define poly_x1_cur (*(uint8*)(g_ram+0x1FEA))
#define poly_y1_cur (*(uint8*)(g_ram+0x1FEB))
#define poly_x1_target (*(uint8*)(g_ram+0x1FEC))
#define poly_y1_trig (*(uint8*)(g_ram+0x1FED))
#define poly_x1_frac (*(uint16*)(g_ram+0x1FEE))
#define poly_x1_step (*(uint16*)(g_ram+0x1FF0))
#define poly_cur_vertex_idx1 (*(uint8*)(g_ram+0x1FF2))
#define poly_raster_numfull (*(uint16*)(g_ram+0x1FFA))
#define dung_bg2 ((uint16*)(g_ram+0x2000))
#define dung_bg1 ((uint16*)(g_ram+0x4000))
#define word_7E6000 (*(uint16*)(g_ram+0x6000))
#define word_7E8000 (*(uint16*)(g_ram+0x8000))
#define dung_hdr_travel_destinations ((uint8*)(g_ram+0xC000))
#define dung_want_lights_out (*(uint8*)(g_ram+0xC005))
#define dung_want_lights_out_copy (*(uint8*)(g_ram+0xC006))
#define palette_filter_countdown (*(uint16*)(g_ram+0xC007))
#define darkening_or_lightening_screen (*(uint16*)(g_ram+0xC009))
#define mosaic_target_level (*(uint8*)(g_ram+0xC00B))
#define mosaic_target_level_PADDING (*(uint8*)(g_ram+0xC00C))
#define bg_tile_animation_countdown (*(uint16*)(g_ram+0xC00D))
#define word_7EC00F (*(uint16*)(g_ram+0xC00F))
#define mosaic_level (*(uint8*)(g_ram+0xC011))
#define word_7EC013 (*(uint16*)(g_ram+0xC013))
#define word_7EC015 (*(uint16*)(g_ram+0xC015))
#define overworld_fixed_color_plusminus (*(uint8*)(g_ram+0xC017))
#define agahnim_pal_setting ((uint16*)(g_ram+0xC019))
#define overworld_area_index_spexit (*(uint16*)(g_ram+0xC100))
#define TM_copy_spexit (*(uint8*)(g_ram+0xC102))
#define BG2VOFS_copy2_spexit (*(uint16*)(g_ram+0xC104))
#define BG2HOFS_copy2_spexit (*(uint16*)(g_ram+0xC106))
#define link_y_coord_spexit (*(uint16*)(g_ram+0xC108))
#define link_x_coord_spexit (*(uint16*)(g_ram+0xC10A))
#define overworld_screen_index_spexit (*(uint16*)(g_ram+0xC10C))
#define map16_load_src_off_spexit (*(uint16*)(g_ram+0xC10E))
#define camera_y_coord_scroll_low_spexit (*(uint16*)(g_ram+0xC110))
#define camera_x_coord_scroll_low_spexit (*(uint16*)(g_ram+0xC112))
#define room_scroll_vars0_ystart_spexit (*(uint16*)(g_ram+0xC114))
#define room_scroll_vars0_yend_spexit (*(uint16*)(g_ram+0xC116))
#define room_scroll_vars0_xstart_spexit (*(uint16*)(g_ram+0xC118))
#define room_scroll_vars0_xend_spexit (*(uint16*)(g_ram+0xC11A))
#define up_down_scroll_target_spexit (*(uint16*)(g_ram+0xC11C))
#define up_down_scroll_target_end_spexit (*(uint16*)(g_ram+0xC11E))
#define left_right_scroll_target_spexit (*(uint16*)(g_ram+0xC120))
#define left_right_scroll_target_end_spexit (*(uint16*)(g_ram+0xC122))
#define byte_7EC124 (*(uint8*)(g_ram+0xC124))
#define main_tile_theme_index_spexit (*(uint8*)(g_ram+0xC125))
#define aux_tile_theme_index_spexit (*(uint8*)(g_ram+0xC126))
#define sprite_graphics_index_spexit (*(uint8*)(g_ram+0xC127))
#define overworld_unk1_spexit (*(uint16*)(g_ram+0xC12A))
#define overworld_unk1_neg_spexit (*(uint16*)(g_ram+0xC12C))
#define overworld_unk3_spexit (*(uint16*)(g_ram+0xC12E))
#define overworld_unk3_neg_spexit (*(uint16*)(g_ram+0xC130))
#define overworld_area_index_exit (*(uint16*)(g_ram+0xC140))
#define TM_copy_exit (*(uint16*)(g_ram+0xC142))
#define BG2VOFS_copy2_exit (*(uint16*)(g_ram+0xC144))
#define BG2HOFS_copy2_exit (*(uint16*)(g_ram+0xC146))
#define link_y_coord_exit (*(uint16*)(g_ram+0xC148))
#define link_x_coord_exit (*(uint16*)(g_ram+0xC14A))
#define overworld_screen_index_exit (*(uint16*)(g_ram+0xC14C))
#define map16_load_src_off_exit (*(uint16*)(g_ram+0xC14E))
#define camera_y_coord_scroll_low_exit (*(uint16*)(g_ram+0xC150))
#define camera_x_coord_scroll_low_exit (*(uint16*)(g_ram+0xC152))
#define up_down_scroll_target_exit (*(uint16*)(g_ram+0xC15C))
#define up_down_scroll_target_end_exit (*(uint16*)(g_ram+0xC15E))
#define left_right_scroll_target_exit (*(uint16*)(g_ram+0xC160))
#define left_right_scroll_target_end_exit (*(uint16*)(g_ram+0xC162))
#define byte_7EC164 (*(uint8*)(g_ram+0xC164))
#define main_tile_theme_index_exit (*(uint8*)(g_ram+0xC165))
#define aux_tile_theme_index_exit (*(uint8*)(g_ram+0xC166))
#define sprite_graphics_index_exit (*(uint8*)(g_ram+0xC167))
#define overworld_unk1_exit (*(uint16*)(g_ram+0xC16A))
#define overworld_unk1_neg_exit (*(uint16*)(g_ram+0xC16C))
#define overworld_unk3_exit (*(uint16*)(g_ram+0xC16E))
#define overworld_unk3_neg_exit (*(uint16*)(g_ram+0xC170))
#define orange_blue_barrier_state (*(uint16*)(g_ram+0xC172))
#define word_7EC174 (*(uint16*)(g_ram+0xC174))
#define word_7EC176 (*(uint16*)(g_ram+0xC176))
#define BG2HOFS_copy2_cached (*(uint16*)(g_ram+0xC180))
#define BG2VOFS_copy2_cached (*(uint16*)(g_ram+0xC182))
#define link_y_coord_cached (*(uint16*)(g_ram+0xC184))
#define link_x_coord_cached (*(uint16*)(g_ram+0xC186))
#define room_scroll_vars_y_vofs1_cached (*(uint16*)(g_ram+0xC188))
#define room_scroll_vars_y_vofs2_cached (*(uint16*)(g_ram+0xC18A))
#define room_scroll_vars_x_vofs1_cached (*(uint16*)(g_ram+0xC18C))
#define room_scroll_vars_x_vofs2_cached (*(uint16*)(g_ram+0xC18E))
#define up_down_scroll_target_cached (*(uint16*)(g_ram+0xC190))
#define up_down_scroll_target_end_cached (*(uint16*)(g_ram+0xC192))
#define left_right_scroll_target_cached (*(uint16*)(g_ram+0xC194))
#define left_right_scroll_target_end_cached (*(uint16*)(g_ram+0xC196))
#define camera_y_coord_scroll_low_cached (*(uint16*)(g_ram+0xC198))
#define camera_x_coord_scroll_low_cached (*(uint16*)(g_ram+0xC19A))
#define quadrant_fullsize_x_cached (*(uint8*)(g_ram+0xC19C))
#define quadrant_fullsize_y_cached (*(uint8*)(g_ram+0xC19D))
#define link_quadrant_x_cached (*(uint8*)(g_ram+0xC19E))
#define link_quadrant_y_cached (*(uint8*)(g_ram+0xC19F))
#define link_direction_facing_cached (*(uint8*)(g_ram+0xC1A6))
#define link_is_on_lower_level_cached (*(uint8*)(g_ram+0xC1A7))
#define link_is_on_lower_level_mirror_cached (*(uint8*)(g_ram+0xC1A8))
#define is_standing_in_doorway_cahed (*(uint8*)(g_ram+0xC1A9))
#define dung_cur_floor_cached (*(uint8*)(g_ram+0xC1AA))
#define mapbak_BG1HOFS_copy2 (*(uint16*)(g_ram+0xC200))
#define mapbak_BG2HOFS_copy2 (*(uint16*)(g_ram+0xC202))
#define mapbak_BG1VOFS_copy2 (*(uint16*)(g_ram+0xC204))
#define mapbak_BG2VOFS_copy2 (*(uint16*)(g_ram+0xC206))
#define dung_bg2_properties_backup (*(uint8*)(g_ram+0xC208))
#define overworld_pal_unk1 (*(uint8*)(g_ram+0xC20A))
#define overworld_pal_unk2 (*(uint8*)(g_ram+0xC20B))
#define overworld_pal_unk3 (*(uint8*)(g_ram+0xC20C))
#define mapbak_main_tile_theme_index (*(uint8*)(g_ram+0xC20E))
#define mapbak_sprite_graphics_index (*(uint8*)(g_ram+0xC20F))
#define mapbak_aux_tile_theme_index (*(uint8*)(g_ram+0xC210))
#define mapbak_TM (*(uint8*)(g_ram+0xC211))
#define mapbak_TS (*(uint8*)(g_ram+0xC212))
#define overworld_screen_index_prev (*(uint16*)(g_ram+0xC213))
#define map16_load_src_off_prev (*(uint16*)(g_ram+0xC215))
#define map16_load_var2_prev (*(uint16*)(g_ram+0xC217))
#define map16_load_dst_off_prev (*(uint16*)(g_ram+0xC219))
#define overworld_screen_transition_prev (*(uint8*)(g_ram+0xC21B))
#define overworld_screen_trans_dir_bits_prev (*(uint16*)(g_ram+0xC21D))
#define overworld_screen_trans_dir_bits2_prev (*(uint16*)(g_ram+0xC21F))
#define mapbak_bg1_x_offset (*(uint16*)(g_ram+0xC221))
#define mapbak_bg1_y_offset (*(uint16*)(g_ram+0xC223))
#define mapbak_CGWSEL (*(uint16*)(g_ram+0xC225))
#define music_unk1_death (*(uint8*)(g_ram+0xC227))
#define sound_effect_ambient_last_death (*(uint8*)(g_ram+0xC228))
#define mapbak_HDMAEN (*(uint8*)(g_ram+0xC229))
#define byte_7EC22F (*(uint8*)(g_ram+0xC22F))
#define vwf_arr ((uint8*)(g_ram+0xC230))
#define aux_bg_subset_0 (*(uint8*)(g_ram+0xC2F8))
#define aux_bg_subset_1 (*(uint8*)(g_ram+0xC2F9))
#define aux_bg_subset_2 (*(uint8*)(g_ram+0xC2FA))
#define aux_bg_subset_3 (*(uint8*)(g_ram+0xC2FB))
#define sprite_gfx_subset_0 (*(uint8*)(g_ram+0xC2FC))
#define sprite_gfx_subset_1 (*(uint8*)(g_ram+0xC2FD))
#define sprite_gfx_subset_2 (*(uint8*)(g_ram+0xC2FE))
#define sprite_gfx_subset_3 (*(uint8*)(g_ram+0xC2FF))
#define aux_palette_buffer ((uint16*)(g_ram+0xC300))
#define main_palette_buffer ((uint16*)(g_ram+0xC500))
#define hud_tile_indices_buffer ((uint16*)(g_ram+0xC700))
#define moving_wall_arr1 ((uint16*)(g_ram+0xC880))
#define word_7EE000 (*(uint16*)(g_ram+0xE000))
#define polyhedral_buffer ((uint8*)(g_ram+0xE800))
#define save_dung_info ((uint16*)(g_ram+0xF000))
#define save_ow_event_info ((uint8*)(g_ram+0xF280))
#define savegame_has_master_sword_flags (*(uint16*)(g_ram+0xF300))
#define byte_7EF33F (*(uint8*)(g_ram+0xF33F))
#define link_item_bow (*(uint8*)(g_ram+0xF340))
#define link_item_boomerang (*(uint8*)(g_ram+0xF341))
#define link_item_hookshot (*(uint8*)(g_ram+0xF342))
#define link_item_bombs (*(uint8*)(g_ram+0xF343))
#define link_item_mushroom (*(uint8*)(g_ram+0xF344))
#define link_item_fire_rod (*(uint8*)(g_ram+0xF345))
#define link_item_ice_rod (*(uint8*)(g_ram+0xF346))
#define link_item_bombos_medallion (*(uint8*)(g_ram+0xF347))
#define link_item_ether_medallion (*(uint8*)(g_ram+0xF348))
#define link_item_quake_medallion (*(uint8*)(g_ram+0xF349))
#define link_item_torch (*(uint8*)(g_ram+0xF34A))
#define link_item_hammer (*(uint8*)(g_ram+0xF34B))
#define link_item_flute (*(uint8*)(g_ram+0xF34C))
#define link_item_bug_net (*(uint8*)(g_ram+0xF34D))
#define link_item_book_of_mudora (*(uint8*)(g_ram+0xF34E))
#define link_item_bottle_index (*(uint8*)(g_ram+0xF34F))
#define link_item_cane_somaria (*(uint8*)(g_ram+0xF350))
#define link_item_cane_byrna (*(uint8*)(g_ram+0xF351))
#define link_item_cape (*(uint8*)(g_ram+0xF352))
#define link_item_mirror (*(uint8*)(g_ram+0xF353))
#define link_item_gloves (*(uint8*)(g_ram+0xF354))
#define link_item_boots (*(uint8*)(g_ram+0xF355))
#define link_item_flippers (*(uint8*)(g_ram+0xF356))
#define link_item_moon_pearl (*(uint8*)(g_ram+0xF357))
#define link_sword_type (*(uint8*)(g_ram+0xF359))
#define link_shield_type (*(uint8*)(g_ram+0xF35A))
#define link_armor (*(uint8*)(g_ram+0xF35B))
#define link_bottle_info ((uint8*)(g_ram+0xF35C))
#define link_rupees_goal (*(uint16*)(g_ram+0xF360))
#define link_rupees_actual (*(uint16*)(g_ram+0xF362))
#define link_compass (*(uint16*)(g_ram+0xF364))
#define link_bigkey (*(uint16*)(g_ram+0xF366))
#define link_dungeon_map (*(uint16*)(g_ram+0xF368))
#define link_rupees_in_pond (*(uint8*)(g_ram+0xF36A))
#define link_heart_pieces (*(uint8*)(g_ram+0xF36B))
#define link_health_capacity (*(uint8*)(g_ram+0xF36C))
#define link_health_current (*(uint8*)(g_ram+0xF36D))
#define link_magic_power (*(uint8*)(g_ram+0xF36E))
#define link_num_keys (*(uint8*)(g_ram+0xF36F))
#define link_bomb_upgrades (*(uint8*)(g_ram+0xF370))
#define link_arrow_upgrades (*(uint8*)(g_ram+0xF371))
#define link_hearts_filler (*(uint8*)(g_ram+0xF372))
#define link_magic_filler (*(uint8*)(g_ram+0xF373))
#define link_which_pendants (*(uint8*)(g_ram+0xF374))
#define link_bomb_filler (*(uint8*)(g_ram+0xF375))
#define link_arrow_filler (*(uint8*)(g_ram+0xF376))
#define link_num_arrows (*(uint8*)(g_ram+0xF377))
#define link_ability_flags (*(uint8*)(g_ram+0xF379))
#define link_has_crystals (*(uint8*)(g_ram+0xF37A))
#define link_magic_consumption (*(uint8*)(g_ram+0xF37B))
#define link_keys_earned_per_dungeon ((uint8*)(g_ram+0xF37C))
#define sram_progress_indicator (*(uint8*)(g_ram+0xF3C5))
#define sram_progress_flags (*(uint8*)(g_ram+0xF3C6))
#define savegame_map_icons_indicator (*(uint8*)(g_ram+0xF3C7))
#define which_starting_point (*(uint8*)(g_ram+0xF3C8))
#define sram_progress_indicator_3 (*(uint8*)(g_ram+0xF3C9))
#define savegame_is_darkworld (*(uint8*)(g_ram+0xF3CA))
#define follower_indicator (*(uint8*)(g_ram+0xF3CC))
#define saved_tagalong_y (*(uint16*)(g_ram+0xF3CD))
#define saved_tagalong_x (*(uint16*)(g_ram+0xF3CF))
#define saved_tagalong_indoors (*(uint8*)(g_ram+0xF3D1))
#define saved_tagalong_floor (*(uint8*)(g_ram+0xF3D2))
#define follower_dropped (*(uint8*)(g_ram+0xF3D3))
#define deaths_per_palace ((uint16*)(g_ram+0xF3E7))
#define death_save_counter (*(uint16*)(g_ram+0xF403))
#define death_var2 (*(uint16*)(g_ram+0xF405))
#define word_7EF4FE (*(uint16*)(g_ram+0xF4FE))
#define pots_revealed_in_room ((uint16*)(g_ram+0xF580))
#define memorized_tile_addr ((uint16*)(g_ram+0xF800))
#define memorized_tile_value ((uint16*)(g_ram+0xFA00))
#define word_7EFA40 ((uint16*)(g_ram+0xFA40))
#define dung_torch_data ((uint16*)(g_ram+0xFB40))
#define overworld_sprite_gfx ((uint8*)(g_ram+0xFCC0))
#define overworld_sprite_palettes ((uint8*)(g_ram+0xFD40))
#define attributes_for_tile ((uint8*)(g_ram+0xFE00))
#define skullwoodsfire_var0 ((uint8*)(g_ram+0x10000))
#define skullwoodsfire_var5 ((uint8*)(g_ram+0x10008))
#define skullwoodsfire_var4 (*(uint8*)(g_ram+0x10010))
#define blastwall_var4 (*(uint8*)(g_ram+0x10011))
#define skullwoodsfire_var9 (*(uint16*)(g_ram+0x10018))
#define skullwoodsfire_var11 (*(uint16*)(g_ram+0x1001A))
#define blastwall_var7 (*(uint8*)(g_ram+0x1001C))
#define skullwoodsfire_y_arr ((uint16*)(g_ram+0x10020))
#define skullwoodsfire_var10 (*(uint16*)(g_ram+0x10026))
#define skullwoodsfire_x_arr ((uint16*)(g_ram+0x10030))
#define skullwoodsfire_var12 (*(uint16*)(g_ram+0x10036))
#define blastwall_var12 ((uint8*)(g_ram+0x10040))
#define word_7F1000 (*(uint16*)(g_ram+0x11000))
#define word_7F1010 (*(uint16*)(g_ram+0x11010))
#define byte_7F11FA (*(uint8*)(g_ram+0x111FA))
#define byte_7F11FB (*(uint8*)(g_ram+0x111FB))
#define byte_7F11FC (*(uint8*)(g_ram+0x111FC))
#define byte_7F11FD (*(uint8*)(g_ram+0x111FD))
#define byte_7F11FE (*(uint8*)(g_ram+0x111FE))
#define byte_7F11FF (*(uint8*)(g_ram+0x111FF))
#define messaging_text_buffer ((uint8*)(g_ram+0x11200))
#define word_7F1FC0 (*(uint16*)(g_ram+0x11FC0))
#define dung_bg2_attr_table ((uint8*)(g_ram+0x12000))
#define dung_bg1_attr_table ((uint8*)(g_ram+0x13000))
#define word_7F4000 (*(uint16*)(g_ram+0x14000))
#define word_7F4002 (*(uint16*)(g_ram+0x14002))
#define word_7F4004 (*(uint16*)(g_ram+0x14004))
#define word_7F4006 (*(uint16*)(g_ram+0x14006))
#define map16_decode_0 ((uint8*)(g_ram+0x14400))
#define map16_decode_1 ((uint8*)(g_ram+0x14410))
#define map16_decode_2 ((uint8*)(g_ram+0x14420))
#define map16_decode_3 ((uint8*)(g_ram+0x14430))
#define map16_decode_last (*(uint16*)(g_ram+0x14440))
#define map16_decode_tmp (*(uint16*)(g_ram+0x14442))
#define breaktowerseal_var3 ((uint8*)(g_ram+0x15800))
#define breaktowerseal_var4 (*(uint8*)(g_ram+0x15808))
#define breaktowerseal_x (*(uint16*)(g_ram+0x1580E))
#define breaktowerseal_y (*(uint16*)(g_ram+0x15810))
#define breaktowerseal_var5 (*(uint8*)(g_ram+0x15812))
#define breaktowerseal_base_sparkle_y_lo ((uint8*)(g_ram+0x15817))
#define breaktowerseal_base_sparkle_y_hi ((uint8*)(g_ram+0x1581F))
#define breaktowerseal_base_sparkle_x_lo ((uint8*)(g_ram+0x15827))
#define breaktowerseal_base_sparkle_x_hi ((uint8*)(g_ram+0x1582F))
#define breaktowerseal_sparkle_var1 ((uint8*)(g_ram+0x15837))
#define breaktowerseal_sparkle_y_lo ((uint8*)(g_ram+0x1584F))
#define breaktowerseal_sparkle_y_hi ((uint8*)(g_ram+0x15867))
#define breaktowerseal_sparkle_x_lo ((uint8*)(g_ram+0x1587F))
#define breaktowerseal_sparkle_x_hi ((uint8*)(g_ram+0x15897))
#define breaktowerseal_sparkle_var2 ((uint8*)(g_ram+0x158AF))
#define overworld_music ((uint8*)(g_ram+0x15B00))
#define freeRam ((uint8*)(g_ram+0x15BA0))
#define enemy_damage_data ((uint8*)(g_ram+0x16000))
#define hdma_table_unused ((uint16*)(g_ram+0x17000))
#define kTextDialoguePointers ((uint8*)(g_ram+0x171C0))
#define word_7F8000 (*(uint16*)(g_ram+0x18000))
#define word_7F9B52 (*(uint16*)(g_ram+0x19B52))
#define word_7F9B54 (*(uint16*)(g_ram+0x19B54))
#define word_7F9B56 (*(uint16*)(g_ram+0x19B56))
#define word_7F9B58 (*(uint16*)(g_ram+0x19B58))
#define word_7FA000 (*(uint16*)(g_ram+0x1A000))
#define word_7FC000 (*(uint16*)(g_ram+0x1C000))
#define mapbak_palette ((uint16*)(g_ram+0x1DD80))
#define sprite_where_in_room ((uint16*)(g_ram+0x1DF80))
#define overworld_sprite_was_loaded ((uint8*)(g_ram+0x1EF80))
#define garnish_type ((uint8*)(g_ram+0x1F800))
#define garnish_y_lo ((uint8*)(g_ram+0x1F81E))
#define garnish_x_lo ((uint8*)(g_ram+0x1F83C))
#define garnish_y_hi ((uint8*)(g_ram+0x1F85A))
#define garnish_x_hi ((uint8*)(g_ram+0x1F878))
#define garnish_y_vel ((uint8*)(g_ram+0x1F896))
#define garnish_x_vel ((uint8*)(g_ram+0x1F8B4))
#define garnish_y_subpixel ((uint8*)(g_ram+0x1F8D2))
#define garnish_x_subpixel ((uint8*)(g_ram+0x1F8F0))
#define garnish_countdown ((uint8*)(g_ram+0x1F90E))
#define garnish_sprite ((uint8*)(g_ram+0x1F92C))
#define garnish_anim_5 ((uint8*)(g_ram+0x1F94A))
#define garnish_floor ((uint8*)(g_ram+0x1F968))
#define sprite_I ((uint8*)(g_ram+0x1F9C2))
#define garnish_oam_flags ((uint8*)(g_ram+0x1F9FE))
#define sprite_unk3 ((uint8*)(g_ram+0x1FA1C))
#define sprite_unk4 ((uint8*)(g_ram+0x1FA2C))
#define sprite_unk5 ((uint8*)(g_ram+0x1FA3C))
#define sprite_unk1 ((uint8*)(g_ram+0x1FA4C))
#define swamola_x_lo ((uint8*)(g_ram+0x1FA5C))
#define alt_sprite_C ((uint8*)(g_ram+0x1FA6C))
#define alt_sprite_E ((uint8*)(g_ram+0x1FA7C))
#define alt_sprite_subtype2 ((uint8*)(g_ram+0x1FA8C))
#define alt_sprite_height_above_shadow ((uint8*)(g_ram+0x1FA9C))
#define alt_sprite_delay_main ((uint8*)(g_ram+0x1FAAC))
#define byte_7FFABC ((uint8*)(g_ram+0x1FABC))
#define alt_sprite_I ((uint8*)(g_ram+0x1FACC))
#define alt_sprite_maybe_ignore_projectile ((uint8*)(g_ram+0x1FADC))
#define swamola_x_hi ((uint8*)(g_ram+0x1FB1C))
#define swamola_y_lo ((uint8*)(g_ram+0x1FBDC))
#define moldorm_x_lo ((uint8*)(g_ram+0x1FC00))
#define moldorm_x_hi_ ((uint8*)(g_ram+0x1FC80))
#define swamola_y_hi ((uint8*)(g_ram+0x1FC9C))
#define moldorm_y_lo ((uint8*)(g_ram+0x1FD00))
#define word_7FFD02 (*(uint16*)(g_ram+0x1FD02))
#define swamola_target_x_lo ((uint8*)(g_ram+0x1FD5C))
#define swamola_target_x_hi ((uint8*)(g_ram+0x1FD62))
#define swamola_target_y_lo ((uint8*)(g_ram+0x1FD68))
#define swamola_target_y_hi ((uint8*)(g_ram+0x1FD6E))
#define beamos_x_lo ((uint8*)(g_ram+0x1FD80))
#define beamos_x_hi ((uint8*)(g_ram+0x1FE00))
#define beamos_y_lo ((uint8*)(g_ram+0x1FE80))
#define beamos_y_hi ((uint8*)(g_ram+0x1FF00))

#define attract_var12 (*(uint16*)(g_ram+0x20))
#define attract_state (*(uint8*)(g_ram+0x22))
#define attract_sequence (*(uint8*)(g_ram+0x23))
#define attract_var10 (*(uint8*)(g_ram+0x25))
#define attract_next_legend_gfx (*(uint8*)(g_ram+0x26))
#define attract_legend_flag (*(uint8*)(g_ram+0x27))
#define attract_x_base (*(uint8*)(g_ram+0x28))
#define attract_y_base (*(uint8*)(g_ram+0x29))
#define attract_oam_idx (*(uint8*)(g_ram+0x2A))
#define attract_var9 (*(uint8*)(g_ram+0x2B))
#define attract_var13 (*(uint8*)(g_ram+0x2C))
#define attract_var7 (*(uint16*)(g_ram+0x2D))
#define attract_vram_dst (*(uint16*)(g_ram+0x30))
#define attract_var1 (*(uint8*)(g_ram+0x32))
#define attract_var3 (*(uint8*)(g_ram+0x33))
#define attract_var4 (*(uint8*)(g_ram+0x34))
#define attract_x_base_hi (*(uint8*)(g_ram+0x40))
#define attract_var17 (*(uint8*)(g_ram+0x50))
#define attract_var21 (*(uint8*)(g_ram+0x51))
#define attract_var15 (*(uint8*)(g_ram+0x52))
#define attract_var22 (*(uint8*)(g_ram+0x5D))
#define attract_var18 (*(uint8*)(g_ram+0x5F))
#define attract_var5 (*(uint8*)(g_ram+0x60))
#define attract_var11 (*(uint8*)(g_ram+0x61))
#define attract_var19 (*(uint8*)(g_ram+0x62))
#define attract_var20 (*(uint8*)(g_ram+0x63))
#define selectfile_arr1 ((uint16*)(g_ram+0xBF))
#define selectfile_arr2 ((uint8*)(g_ram+0xCA))
#define selectfile_var6 (*(uint8*)(g_ram+0xCC))
#define attract_room_index (*(uint8*)(g_ram+0x10E))
#define attract_legend_ctr (*(uint16*)(g_ram+0x200))
#define selectfile_var8 (*(uint16*)(g_ram+0x630))
#define selectfile_var3 (*(uint8*)(g_ram+0xB10))
#define selectfile_var7 (*(uint8*)(g_ram+0xB11))
#define selectfile_var4 (*(uint8*)(g_ram+0xB12))
#define selectfile_var9 (*(uint8*)(g_ram+0xB13))
#define selectfile_var11 (*(uint8*)(g_ram+0xB14))
#define selectfile_var5 (*(uint8*)(g_ram+0xB15))
#define selectfile_var10 (*(uint8*)(g_ram+0xB16))
#define selectfile_var2 (*(uint8*)(g_ram+0xB9D))

#define blastwall_var5 ((uint8*)(g_ram+0x10000))
#define blastwall_var6 ((uint8*)(g_ram+0x10008))
#define blastwall_var1 (*(uint8*)(g_ram+0x10010))
#define blastwall_var4 (*(uint8*)(g_ram+0x10011))
#define blastwall_var8 (*(uint16*)(g_ram+0x10018))
#define blastwall_var9 (*(uint16*)(g_ram+0x1001A))
#define blastwall_var7 (*(uint8*)(g_ram+0x1001C))
#define blastwall_var10 ((uint16*)(g_ram+0x10020))
#define blastwall_var11 ((uint16*)(g_ram+0x10030))
#define blastwall_var12 ((uint8*)(g_ram+0x10040))

#define breaktowerseal_var3 ((uint8*)(g_ram+0x15800))
#define breaktowerseal_var4 (*(uint8*)(g_ram+0x15808))
#define breaktowerseal_x (*(uint16*)(g_ram+0x1580E))
#define breaktowerseal_y (*(uint16*)(g_ram+0x15810))
#define breaktowerseal_var5 (*(uint8*)(g_ram+0x15812))
#define breaktowerseal_base_sparkle_y_lo ((uint8*)(g_ram+0x15817))
#define breaktowerseal_base_sparkle_y_hi ((uint8*)(g_ram+0x1581F))
#define breaktowerseal_base_sparkle_x_lo ((uint8*)(g_ram+0x15827))
#define breaktowerseal_base_sparkle_x_hi ((uint8*)(g_ram+0x1582F))
#define breaktowerseal_sparkle_var1 ((uint8*)(g_ram+0x15837))
#define breaktowerseal_sparkle_y_lo ((uint8*)(g_ram+0x1584F))
#define breaktowerseal_sparkle_y_hi ((uint8*)(g_ram+0x15867))
#define breaktowerseal_sparkle_x_lo ((uint8*)(g_ram+0x1587F))
#define breaktowerseal_sparkle_x_hi ((uint8*)(g_ram+0x15897))
#define breaktowerseal_sparkle_var2 ((uint8*)(g_ram+0x158AF))

#define happiness_pond_y_vel ((uint8*)(g_ram+0x15800))
#define happiness_pond_x_vel ((uint8*)(g_ram+0x1580C))
#define happiness_pond_z_vel ((uint8*)(g_ram+0x15818))
#define happiness_pond_y_lo ((uint8*)(g_ram+0x15824))
#define happiness_pond_y_hi ((uint8*)(g_ram+0x15830))
#define happiness_pond_x_lo ((uint8*)(g_ram+0x1583C))
#define happiness_pond_x_hi ((uint8*)(g_ram+0x15848))
#define happiness_pond_z ((uint8*)(g_ram+0x15854))
#define happiness_pond_timer ((uint8*)(g_ram+0x15860))
#define happiness_pond_arr1 ((uint8*)(g_ram+0x1586C))
#define happiness_pond_item_to_link ((uint8*)(g_ram+0x1587A))
#define happiness_pond_y_subpixel ((uint8*)(g_ram+0x15886))
#define happiness_pond_x_subpixel ((uint8*)(g_ram+0x15892))
#define happiness_pond_z_subpixel ((uint8*)(g_ram+0x1589E))
#define happiness_pond_step ((uint8*)(g_ram+0x158AA))

#define skullwoodsfire_var0 ((uint8*)(g_ram+0x10000))
#define skullwoodsfire_var5 ((uint8*)(g_ram+0x10008))
#define skullwoodsfire_var4 (*(uint8*)(g_ram+0x10010))
#define skullwoodsfire_var9 (*(uint16*)(g_ram+0x10018))
#define skullwoodsfire_var11 (*(uint16*)(g_ram+0x1001A))
#define skullwoodsfire_y_arr ((uint16*)(g_ram+0x10020))
#define skullwoodsfire_var10 (*(uint16*)(g_ram+0x10026))
#define skullwoodsfire_x_arr ((uint16*)(g_ram+0x10030))
#define skullwoodsfire_var12 (*(uint16*)(g_ram+0x10036))

#define weathervane_arr3 ((uint8*)(g_ram+0x15800))
#define weathervane_arr4 ((uint8*)(g_ram+0x1580C))
#define weathervane_arr5 ((uint8*)(g_ram+0x15818))
#define weathervane_arr6 ((uint8*)(g_ram+0x15824))
#define weathervane_arr7 ((uint8*)(g_ram+0x15830))
#define weathervane_arr8 ((uint8*)(g_ram+0x1583C))
#define weathervane_arr9 ((uint8*)(g_ram+0x15848))
#define weathervane_arr10 ((uint8*)(g_ram+0x15854))
#define weathervane_arr11 ((uint8*)(g_ram+0x15860))
#define weathervane_arr12 ((uint8*)(g_ram+0x1586C))
#define weathervane_var13 (*(uint8*)(g_ram+0x15878))
#define weathervane_var14 (*(uint8*)(g_ram+0x15879))
#define weathervane_var2 (*(uint16*)(g_ram+0x158B6))
#define weathervane_var1 (*(uint8*)(g_ram+0x158B8))


#define scratch_0 (*(uint16*)(g_ram+0x72))
#define scratch_1 (*(uint16*)(g_ram+0x74))
#define srm_var1 (*(uint16*)(g_zenv.sram+0x1ffe))
#define messaging_buf ((uint16*)(g_ram+0x10000))
#define quake_arr1 ((uint8*)(g_ram+0x15800))
#define quake_arr2 ((uint8*)(g_ram+0x15805))
#define quake_var5 (*(uint8*)(g_ram+0x1580A))
#define quake_var1 (*(uint16*)(g_ram+0x1580B))
#define quake_var2 (*(uint16*)(g_ram+0x1580D))
#define quake_var4 (*(uint8*)(g_ram+0x1580F))
#define ether_y3 (*(uint16*)(g_ram+0x15810))
#define ether_var1 (*(uint8*)(g_ram+0x15812))
#define ether_y (*(uint16*)(g_ram+0x15813))
#define ether_x (*(uint16*)(g_ram+0x15815))
#define quake_var3 (*(uint16*)(g_ram+0x1581E))
#define bombos_arr7 ((uint8*)(g_ram+0x15820))
#define bombos_y_lo ((uint8*)(g_ram+0x15824))
#define bombos_y_hi ((uint8*)(g_ram+0x15864))
#define bombos_x_lo ((uint8*)(g_ram+0x158A4))
#define bombos_x_hi ((uint8*)(g_ram+0x158E4))
#define bombos_y_coord2 ((uint16*)(g_ram+0x15924))
#define bombos_x_coord2 ((uint16*)(g_ram+0x1592C))
#define bombos_var4 (*(uint8*)(g_ram+0x15934))
#define bombos_arr3 ((uint8*)(g_ram+0x15935))
#define bombos_arr4 ((uint8*)(g_ram+0x15945))
#define bombos_y_coord ((uint16*)(g_ram+0x15955))
#define bombos_x_coord ((uint16*)(g_ram+0x159D5))
#define bombos_var3 (*(uint8*)(g_ram+0x15A55))
#define bombos_var2 (*(uint8*)(g_ram+0x15A56))
#define bombos_var1 (*(uint8*)(g_ram+0x15A57))

#define happiness_pond_y_vel ((uint8*)(g_ram+0x15800))
#define happiness_pond_x_vel ((uint8*)(g_ram+0x1580C))
#define happiness_pond_z_vel ((uint8*)(g_ram+0x15818))
#define happiness_pond_y_lo ((uint8*)(g_ram+0x15824))
#define happiness_pond_y_hi ((uint8*)(g_ram+0x15830))
#define happiness_pond_x_lo ((uint8*)(g_ram+0x1583C))
#define happiness_pond_x_hi ((uint8*)(g_ram+0x15848))
#define happiness_pond_z ((uint8*)(g_ram+0x15854))
#define happiness_pond_timer ((uint8*)(g_ram+0x15860))
#define happiness_pond_arr1 ((uint8*)(g_ram+0x1586C))
#define happiness_pond_item_to_link ((uint8*)(g_ram+0x1587A))
#define happiness_pond_y_subpixel ((uint8*)(g_ram+0x15886))
#define happiness_pond_x_subpixel ((uint8*)(g_ram+0x15892))
#define happiness_pond_z_subpixel ((uint8*)(g_ram+0x1589E))
#define happiness_pond_step ((uint8*)(g_ram+0x158AA))


#define turn_on_off_water_ctr (*(uint8*)(g_ram+0x424))
#define sprite_N_word ((uint16*)(g_ram+0xBC0))
#define sprite_where_in_overworld ((uint8*)(g_ram+0x1DF80))
#define alt_sprite_B ((uint8*)(g_ram+0x1FA5C))
#define uvram_screen (*(UploadVram_32x32*)&g_ram[0x1000])
#define vram_upload_offset (*(uint16*)(g_ram+0x1000))
#define vram_upload_data ((uint16*)(g_ram+0x1002))
#define vram_upload_tile_buf ((uint16*)(g_ram+0x1100))
#define overworld_entrance_sequence_counter (*(uint8*)(g_ram+0xc8))

#ifndef overworld_tileattr
#define overworld_tileattr ((uint16*)(g_ram+0x2000))
#endif
#define dung_line_ptrs_row0 (*(uint16*)(g_ram+0xbf))
#define star_shaped_switches_tile ((uint16*)(g_ram+0x6A0))
#define dung_inter_starcases ((uint16*)(g_ram+0x6B0))
#define dung_stairs_table_1 ((uint16*)(g_ram+0x6B8))
#define selectfile_var8 (*(uint16*)(g_ram+0x630))

#define R10 (*(uint16*)(g_ram+10))
#define R12 (*(uint16*)(g_ram+12))
#define R14 (*(uint16*)(g_ram+14))
#define R16 (*(uint16*)(g_ram+0xc8))
#define R18 (*(uint16*)(g_ram+0xca))
#define R20 (*(uint16*)(g_ram+0xcc))

// Relocated the hdma table so it can fit 240 rows
#define hdma_table_dynamic_orig_pos ((uint16*)(g_ram+0x1B00))
#define hdma_table_dynamic ((uint16*)(g_ram+0x1DBA0))

// Allocate 64 bytes that we can use for msu resume.
#define msu_resume_info ((uint8*)(g_ram+0x1DB60))

#define msu_resume_info_alt ((uint8*)(g_ram+0x1DB20))


typedef struct MovableBlockData {
  uint16 room;
  uint16 tilemap;
} MovableBlockData;

typedef struct OamEntSigned {
  int8 x, y;
  uint8 charnum, flags;
} OamEntSigned;



#define movable_block_datas ((MovableBlockData*)(g_ram+0xf940))
#define oam_buf ((OamEnt*)(g_ram+0x800))


typedef struct RoomBounds {
  union {
    struct { uint16 a0, b0, a1, b1; };
    uint16 v[4];
  };
} RoomBounds;
#define room_bounds_y (*(RoomBounds*)(g_ram+0x600))
#define room_bounds_x (*(RoomBounds*)(g_ram+0x608))


typedef struct OwScrollVars {
  uint16 ystart, yend, xstart, xend;
} OwScrollVars;


#define ow_scroll_vars0 (*(OwScrollVars*)(g_ram+0x600))
#define ow_scroll_vars1 (*(OwScrollVars*)(g_ram+0x608))

#define ow_scroll_vars0_exit (*(OwScrollVars*)(g_ram+0xC154))

extern const uint8 kLayoutQuadrantFlags[];
extern const uint8 kVariousPacks[16];
extern const uint8 kMaxBombsForLevel[];
extern const uint8 kMaxArrowsForLevel[];
extern const uint8 kReceiveItem_Tab1[76];
extern const uint8 kHealthAfterDeath[21];
extern const uint8 kReceiveItemGfx[76];
extern const uint16 kOverworld_OffsetBaseY[64];
extern const uint16 kOverworld_OffsetBaseX[64];

// forwards


typedef struct MirrorHdmaVars {
  uint16 var0;
  uint16 var1[2];
  uint16 var3[2];
  uint16 var5;
  uint16 var6;
  uint16 var7;
  uint16 var8;
  uint16 var9;
  uint16 var10;
  uint16 var11;
  uint16 pad;
  uint8 ctr2, ctr;
} MirrorHdmaVars;
#define mirror_vars (*(MirrorHdmaVars*)(g_ram+0x6A0))


typedef struct UploadVram_Row {
  uint16 col[32];
} UploadVram_Row;

typedef struct UploadVram_32x32 {
  UploadVram_Row row[32];
} UploadVram_32x32;

typedef struct UploadVram_3 {
  uint8 pad[256];
  uint16 data[4];
} UploadVram_3;

#define uvram (*(UploadVram_3*)(&g_ram[0x1000]))

extern uint8 g_ram[131072];
extern const uint16 kUpperBitmasks[];
extern const uint8 kLitTorchesColorPlus[];
extern const uint8 kDungeonCrystalPendantBit[];
extern const int8 kGetBestActionToPerformOnTile_x[];
extern const int8 kGetBestActionToPerformOnTile_y[];


#endif  // ZELDA3_VARIABLES_H_