Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 72 additions & 73 deletions src/defines.asm
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
!CTRL_SHORTCUT_SKIP_REMAINING_PEA = !CTRL_SHORTCUT_ROUTINE+$7FA
!CTRL_SHORTCUT_SKIP_REMAINING_PEA_VALUE = $FCFC

; If WRAM_PERSIST_START is changed from $7EFD80 then also adjust init.asm
; If WRAM_PERSIST_START is changed from $7EFDA0 then also adjust init.asm
!WRAM_AND_CRASH_SIZE = #$0300
!WRAM_SIZE = #$0200
!WRAM_START = $7EFD00
!WRAM_PERSIST_START = $7EFD80
!WRAM_PERSIST_START = $7EFDA0
!WRAM_MENU_START = $7EFE00
!WRAM_END = $7EFF00
!CRASHDUMP = $7EFF00
Expand Down Expand Up @@ -113,56 +113,57 @@
!ram_room_has_set_rng = !WRAM_START+$5E ; Room set RNG only uses the most significant bit
!ram_activated_shine_duration = !WRAM_START+$60

; ^ FREE SPACE ^ up to +$6C
; ^ FREE SPACE ^ up to +$8C

; ----------------------------------------------------------
; A few room strats like shinetune use several variables
; that are not used by other modes,
; but also they do not need many other variables,
; so the following variables share the same WRAM

!ram_xpos = !WRAM_START+$6E
!ram_ypos = !WRAM_START+$70
!ram_subpixel_pos = !WRAM_START+$72
!ram_HUD_check = !WRAM_START+$74
!ram_shot_timer = !WRAM_START+$76
!ram_quickdrop_counter = !WRAM_START+$78
!ram_walljump_counter = !WRAM_START+$7A
!ram_fail_sum = !WRAM_START+$7C
!ram_fail_count = !WRAM_START+$7E
!ram_xpos = !WRAM_START+$8E
!ram_ypos = !WRAM_START+$90
!ram_subpixel_pos = !WRAM_START+$92
!ram_HUD_check = !WRAM_START+$94
!ram_shot_timer = !WRAM_START+$96
!ram_quickdrop_counter = !WRAM_START+$98
!ram_walljump_counter = !WRAM_START+$9A
!ram_fail_sum = !WRAM_START+$9C
!ram_fail_count = !WRAM_START+$9E

; Shot timer also reuses values
!ram_shot_timer_past1 = !WRAM_START+$78
!ram_shot_timer_past2 = !WRAM_START+$7A
!ram_shot_timer_past3 = !WRAM_START+$7C
!ram_shot_timer_past4 = !WRAM_START+$7E
!ram_shot_timer_past1 = !WRAM_START+$98
!ram_shot_timer_past2 = !WRAM_START+$9A
!ram_shot_timer_past3 = !WRAM_START+$9C
!ram_shot_timer_past4 = !WRAM_START+$9E

; Kihunter manip
!ram_enemy0_last_xpos = !WRAM_START+$6E
!ram_enemy0_last_ypos = !WRAM_START+$70
!ram_enemy4_last_xpos = !WRAM_START+$72
!ram_enemy4_last_ypos = !WRAM_START+$74
!ram_enemy6_last_xpos = !WRAM_START+$76
!ram_enemy6_last_ypos = !WRAM_START+$78
!ram_enemy8_last_xpos = !WRAM_START+$7A
!ram_enemy8_last_ypos = !WRAM_START+$7C
!ram_enemy0_last_xpos = !WRAM_START+$8E
!ram_enemy0_last_ypos = !WRAM_START+$90
!ram_enemy4_last_xpos = !WRAM_START+$92
!ram_enemy4_last_ypos = !WRAM_START+$94
!ram_enemy6_last_xpos = !WRAM_START+$96
!ram_enemy6_last_ypos = !WRAM_START+$98
!ram_enemy8_last_xpos = !WRAM_START+$9A
!ram_enemy8_last_ypos = !WRAM_START+$9C

; Kraid radar (reuses above ram_enemy6 variables)
!ram_radar6 = !WRAM_START+$6E
!ram_radar7 = !WRAM_START+$70
!ram_enemy7_last_xpos = !WRAM_START+$7A
!ram_enemy7_last_ypos = !WRAM_START+$7C
!ram_radar6 = !WRAM_START+$8E
!ram_radar7 = !WRAM_START+$90
!ram_enemy7_last_xpos = !WRAM_START+$9A
!ram_enemy7_last_ypos = !WRAM_START+$9C

; Shinetune
!ram_shine_dash_held_late = !WRAM_START+$6E
!ram_shinetune_early_1 = !WRAM_START+$70
!ram_shinetune_late_1 = !WRAM_START+$72
!ram_shinetune_early_2 = !WRAM_START+$74
!ram_shinetune_late_2 = !WRAM_START+$76
!ram_shinetune_early_3 = !WRAM_START+$78
!ram_shinetune_late_3 = !WRAM_START+$7A
!ram_shinetune_early_4 = !WRAM_START+$7C
!ram_shinetune_late_4 = !WRAM_START+$7E
!ram_shine_dash_held_late = !WRAM_START+$8E
!ram_shinetune_early_1 = !WRAM_START+$90
!ram_shinetune_late_1 = !WRAM_START+$92
!ram_shinetune_early_2 = !WRAM_START+$94
!ram_shinetune_late_2 = !WRAM_START+$96
!ram_shinetune_early_3 = !WRAM_START+$98
!ram_shinetune_late_3 = !WRAM_START+$9A
!ram_shinetune_early_4 = !WRAM_START+$9C
!ram_shinetune_late_4 = !WRAM_START+$9E


; ----------------------------------------------------------
; WRAM variables below this point are PERSISTENT.
Expand All @@ -179,19 +180,20 @@

!ram_magic_pants_enabled = !WRAM_PERSIST_START+$0A
!ram_space_pants_enabled = !WRAM_PERSIST_START+$0C
!ram_kraid_claw_rng = !WRAM_PERSIST_START+$0E
!ram_kraid_wait_rng = !WRAM_PERSIST_START+$10
!ram_draygon_rng_left = !WRAM_PERSIST_START+$12
!ram_draygon_rng_right = !WRAM_PERSIST_START+$14
!ram_turret_rng = !WRAM_PERSIST_START+$16
!ram_ridley_rng_flags = !WRAM_PERSIST_START+$18
!ram_ridley_rng_times_and_fireball = !WRAM_PERSIST_START+$1A
!ram_crocomire_rng = !WRAM_PERSIST_START+$1C
!ram_phantoon_phase_rng = !WRAM_PERSIST_START+$1E
!ram_phantoon_eye_and_flames_rng = !WRAM_PERSIST_START+$20
!ram_botwoon_rng = !WRAM_PERSIST_START+$22
!ram_baby_rng = !WRAM_PERSIST_START+$24
!ram_mb_rng = !WRAM_PERSIST_START+$26

!ram_game_loop_extras = !WRAM_PERSIST_START+$0E
!ram_infinite_ammo = !WRAM_PERSIST_START+$10
!ram_suits_heat_damage_value = !WRAM_PERSIST_START+$12
!ram_sprite_feature_flags = !WRAM_PERSIST_START+$14
!ram_door_portal_flags = !WRAM_PERSIST_START+$16
!ram_door_source = !WRAM_PERSIST_START+$18
!ram_door_destination = !WRAM_PERSIST_START+$1A
!ram_frames_held = !WRAM_PERSIST_START+$1C
!ram_quickboot_spc_state = !WRAM_PERSIST_START+$1E
!ram_display_backup = !WRAM_PERSIST_START+$20
!ram_slowdown_mode = !WRAM_PERSIST_START+$22

; ^ FREE SPACE ^ up to +$26

!ram_itempickups_all = !WRAM_PERSIST_START+$28
!ram_itempickups_visible = !WRAM_PERSIST_START+$2A
Expand All @@ -215,24 +217,7 @@
!ram_watch_edit_lock_left = !WRAM_PERSIST_START+$4A
!ram_watch_edit_lock_right = !WRAM_PERSIST_START+$4C

!ram_game_loop_extras = !WRAM_PERSIST_START+$4E
!ram_infinite_ammo = !WRAM_PERSIST_START+$50
!ram_suits_heat_damage_value = !WRAM_PERSIST_START+$52
!ram_sprite_feature_flags = !WRAM_PERSIST_START+$54
!ram_door_portal_flags = !WRAM_PERSIST_START+$56
!ram_door_source = !WRAM_PERSIST_START+$58
!ram_door_destination = !WRAM_PERSIST_START+$5A
!ram_frames_held = !WRAM_PERSIST_START+$5C
!ram_quickboot_spc_state = !WRAM_PERSIST_START+$5E
!ram_display_backup = !WRAM_PERSIST_START+$60

; ^ FREE SPACE ^ up to +$7C (!WRAM_START+$FC - !WRAM_PERSIST_START)

; -----------------------
; RAM (Bank 7E required)
; -----------------------

!ram_slowdown_mode = $7EFDFE
; ^ FREE SPACE ^ up to +$5E (!WRAM_START+$FE - !WRAM_PERSIST_START)

; ---------
; RAM Menu
Expand Down Expand Up @@ -484,7 +469,7 @@
; SRAM
; -----

!SRAM_VERSION = #$001E
!SRAM_VERSION = #$001F

!SRAM_START = $702000
!SRAM_SIZE = #$1000
Expand Down Expand Up @@ -572,10 +557,25 @@
!sram_update_timers_ctrl_input = !SRAM_START+$AC
!sram_update_timers_options = !SRAM_START+$AE

; ^ FREE SPACE ^ up to +$EC
; ^ FREE SPACE ^ up to +$CE

; This is a continuation of sram_ctrl_shortcut_selections
!sram_ctrl_additional_selections = !SRAM_START+$D0 ; 18 bytes starting from +$EE
!sram_hard_reset_clears_rng = !SRAM_START+$D1 ; only uses first bit
!sram_kraid_claw_rng = !SRAM_START+$D2
!sram_kraid_wait_rng = !SRAM_START+$D4
!sram_draygon_rng_left = !SRAM_START+$D6
!sram_draygon_rng_right = !SRAM_START+$D8
!sram_turret_rng = !SRAM_START+$DA
!sram_ridley_rng_flags = !SRAM_START+$DC
!sram_ridley_rng_times_and_fireball = !SRAM_START+$DE
!sram_crocomire_rng = !SRAM_START+$E0
!sram_phantoon_phase_rng = !SRAM_START+$E2
!sram_phantoon_eye_and_flames_rng = !SRAM_START+$E4
!sram_botwoon_rng = !SRAM_START+$E6
!sram_baby_rng = !SRAM_START+$E8
!sram_mb_rng = !SRAM_START+$EA
!sram_rng_reserved = !SRAM_START+$EC ; available

!sram_presetequiprando = !SRAM_START+$100
!sram_presetequiprando_beampref = !SRAM_START+$102
Expand Down Expand Up @@ -1238,12 +1238,11 @@ if !FEATURE_TINYSTATES
!SRAM_SAVED_RNG = $737F80
!SRAM_SAVED_FRAME_COUNTER = $737F82
!SRAM_SAVED_ENEMY_COUNTER = $737F84
!SRAM_TINYSTATE_ROOM = $737F86
!SRAM_SAVED_MINIMAP = $737F86
!SRAM_SEG_TIMER_F = $737F88
!SRAM_SEG_TIMER_S = $737F8A
!SRAM_SEG_TIMER_M = $737F8C
!SRAM_SAVED_MINIMAP = $737F8E
!SRAM_SLOWDOWN_MODE = $737F90
!SRAM_SLOWDOWN_MODE = $737F8E
else
!SRAM_DMA_BANK = $770000
!SRAM_SAVED_RNG = $770080
Expand Down
Loading
Loading