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
7 changes: 2 additions & 5 deletions src/defines.asm
Original file line number Diff line number Diff line change
Expand Up @@ -339,11 +339,8 @@
!ram_cm_etanks = !WRAM_MENU_START+$AC
!ram_cm_reserve = !WRAM_MENU_START+$AE

!ram_cm_zeb1 = !WRAM_MENU_START+$90
!ram_cm_zeb2 = !WRAM_MENU_START+$92
!ram_cm_zeb3 = !WRAM_MENU_START+$94
!ram_cm_zeb4 = !WRAM_MENU_START+$96
!ram_cm_zebmask = !WRAM_MENU_START+$98
!ram_cm_zebmask = !WRAM_MENU_START+$90
!ram_cm_metmask = !WRAM_MENU_START+$92

!ram_cm_ceres_seconds = !WRAM_MENU_START+$90
!ram_cm_zebes_seconds = !WRAM_MENU_START+$92
Expand Down
180 changes: 78 additions & 102 deletions src/flagmenu.asm
Original file line number Diff line number Diff line change
Expand Up @@ -827,75 +827,54 @@ eventflags_setmapstations:

eventflags_prepare_events_menu:
{
LDA $7ED820 : AND #$0038 : STA !ram_cm_zebmask
JSL eventflags_setup_zeb_ram
%setmenubank()
JML action_submenu
}

eventflags_set_zeb_ram:
{
LDA $7ED820 : AND #$FFC7
ORA !ram_cm_zebmask : STA $7ED820

; Intentional fallthrough
LDA !ram_cm_zebmask
}

eventflags_setup_zeb_ram:
{
CMP #$0020 : BPL .zeb4
CMP #$0018 : BPL .zeb3
CMP #$0010 : BPL .zeb2
CMP #$0008 : BPL .zeb1
STA !ram_cm_zeb1
.clear_zeb2
STA !ram_cm_zeb2
.clear_zeb3
STA !ram_cm_zeb3
.clear_zeb4
STA !ram_cm_zeb4
RTL
; Zebettites
LDA $7ED820 : AND #$0038
CMP #$0020 : BEQ .fourZeb
CMP #$0018 : BEQ .threeZeb
CMP #$0010 : BEQ .twoZeb
CMP #$0008 : BEQ .oneZeb
LDA #$0000 : BRA .doneZeb
.fourZeb
LDA #$0004 : BRA .doneZeb
.threeZeb
LDA #$0003 : BRA .doneZeb
.twoZeb
LDA #$0002 : BRA .doneZeb
.oneZeb
LDA #$0001 : BRA .doneZeb
.doneZeb
STA !ram_cm_zebmask

.zeb4
LDA #$0020 : STA !ram_cm_zeb4
LDA #$0018 : STA !ram_cm_zeb3
LDA #$0010 : STA !ram_cm_zeb2
LDA #$0008 : STA !ram_cm_zeb1
RTL
; Metroids
LDA $7ED822 : AND #$000F
BIT #$0008 : BNE .fourMet
BIT #$0004 : BNE .threeMet
BIT #$0002 : BNE .twoMet
BIT #$0001 : BNE .oneMet
LDA #$0000 : BRA .doneMet
.fourMet
LDA #$0004 : BRA .doneMet
.threeMet
LDA #$0003 : BRA .doneMet
.twoMet
LDA #$0002 : BRA .doneMet
.oneMet
LDA #$0001 : BRA .doneMet
.doneMet
STA !ram_cm_metmask

.zeb3
LDA #$0018 : STA !ram_cm_zeb3
LDA #$0010 : STA !ram_cm_zeb2
LDA #$0008 : STA !ram_cm_zeb1
TDC
BRA .clear_zeb4

.zeb2
LDA #$0010 : STA !ram_cm_zeb2
LDA #$0008 : STA !ram_cm_zeb1
TDC
BRA .clear_zeb3

.zeb1
LDA #$0008 : STA !ram_cm_zeb1
TDC
BRA .clear_zeb2
%setmenubank()
JML action_submenu
}

EventsMenu:
dw #events_zebesawake
dw #events_speedboostquake
dw #events_maridiatubebroken
dw #events_shaktool
dw #events_chozoacid
dw #events_metroid1
dw #events_metroid2
dw #events_metroid3
dw #events_metroid4
dw #events_zeb1
dw #events_zeb2
dw #events_zeb3
dw #events_zeb4
dw #events_metroids
dw #events_zebettites
dw #events_mb1glass
dw #events_zebesexploding
dw #events_animals
Expand All @@ -911,6 +890,9 @@ EventsMenu:
events_zebesawake:
%cm_toggle_bit("Zebes Awake", $7ED820, #$0001, #0)

events_speedboostquake:
%cm_toggle_bit("Speedbooster Lavaquake", $7ED822, #$0020, #0)

events_maridiatubebroken:
%cm_toggle_bit("Maridia Tube Broken", $7ED820, #$0800, #0)

Expand All @@ -920,53 +902,47 @@ events_shaktool:
events_chozoacid:
%cm_toggle_bit("Chozo Lowered Acid", $7ED821, #$0010, #0)

events_metroid1:
%cm_toggle_bit("1st Metroids Cleared", $7ED822, #$0001, #0)

events_metroid2:
%cm_toggle_bit("2nd Metroids Cleared", $7ED822, #$0002, #0)

events_metroid3:
%cm_toggle_bit("3rd Metroids Cleared", $7ED822, #$0004, #0)

events_metroid4:
%cm_toggle_bit("4th Metroids Cleared", $7ED822, #$0008, #0)

events_zeb1:
%cm_toggle("1st Zebitite Cleared", !ram_cm_zeb1, #$08, #.routine)
events_metroids:
%cm_numfield("Metroid Rooms Cleared", !ram_cm_metmask, 0, 4, 1, 1, #.routine)
.routine
LDA !ram_cm_zeb1 : BNE .set
TDC
.set
STA !ram_cm_zebmask
JML eventflags_set_zeb_ram
CMP #$0000 : BEQ .done
CMP #$0001 : BEQ .one
CMP #$0002 : BEQ .two
CMP #$0003 : BEQ .three

LDA #$000F : BRA .done
.three
LDA #$0007 : BRA .done
.two
LDA #$0003 : BRA .done
.one
LDA #$0001 : BRA .done

events_zeb2:
%cm_toggle("2nd Zebitite Cleared", !ram_cm_zeb2, #$10, #.routine)
.routine
LDA !ram_cm_zeb2 : BNE .set
LDA #$0008
.set
STA !ram_cm_zebmask
JML eventflags_set_zeb_ram
.done
STA $C1
LDA $7ED822 : AND #$FFF0 : ORA $C1 : STA $7ED822
RTL

events_zeb3:
%cm_toggle("3rd Zebitite Cleared", !ram_cm_zeb3, #$18, #.routine)
events_zebettites:
%cm_numfield("Zebs Killed", !ram_cm_zebmask, 0, 4, 1, 1, #.routine)
.routine
LDA !ram_cm_zeb3 : BNE .set
LDA #$0010
.set
STA !ram_cm_zebmask
JML eventflags_set_zeb_ram
CMP #$0000 : BEQ .done
CMP #$0001 : BEQ .one
CMP #$0002 : BEQ .two
CMP #$0003 : BEQ .three

LDA #$0020 : BRA .done
.three
LDA #$0018 : BRA .done
.two
LDA #$0010 : BRA .done
.one
LDA #$0008

events_zeb4:
%cm_toggle("4th Zebitite Cleared", !ram_cm_zeb4, #$20, #.routine)
.routine
LDA !ram_cm_zeb4 : BNE .set
LDA #$0018
.set
STA !ram_cm_zebmask
JML eventflags_set_zeb_ram
.done
STA $C1
LDA $7ED820 : AND #$FFC7 : ORA $C1 : STA $7ED820
RTL

events_mb1glass:
%cm_toggle_bit("MB1 Glass Broken", $7ED820, #$0004, #0)
Expand Down
7 changes: 2 additions & 5 deletions src/symbols.asm
Original file line number Diff line number Diff line change
Expand Up @@ -322,11 +322,8 @@ ram_cm_plasma = !ram_cm_plasma ; !WRAM_MENU_START+$AA
ram_cm_etanks = !ram_cm_etanks ; !WRAM_MENU_START+$AC
ram_cm_reserve = !ram_cm_reserve ; !WRAM_MENU_START+$AE

ram_cm_zeb1 = !ram_cm_zeb1 ; !WRAM_MENU_START+$90
ram_cm_zeb2 = !ram_cm_zeb2 ; !WRAM_MENU_START+$92
ram_cm_zeb3 = !ram_cm_zeb3 ; !WRAM_MENU_START+$94
ram_cm_zeb4 = !ram_cm_zeb4 ; !WRAM_MENU_START+$96
ram_cm_zebmask = !ram_cm_zebmask ; !WRAM_MENU_START+$98
ram_cm_zebmask = !ram_cm_zebmask ; !WRAM_MENU_START+$90
ram_cm_metmask = !ram_cm_metmask ; !WRAM_MENU_START+$92

ram_cm_ceres_seconds = !ram_cm_ceres_seconds ; !WRAM_MENU_START+$90
ram_cm_zebes_seconds = !ram_cm_zebes_seconds ; !WRAM_MENU_START+$92
Expand Down