ganon alternate invincible dialog added all crystals ganon condition changed "SEED" on title screen to "HASH" fixed bug in progressive armor limit code
61 lines
2.2 KiB
NASM
61 lines
2.2 KiB
NASM
;--------------------------------------------------------------------------------
|
|
; $7F5010 - Scratch Space (Callee Preserved)
|
|
;--------------------------------------------------------------------------------
|
|
!GOAL_COUNTER = "$7EF460"
|
|
DrawGoalIndicator:
|
|
LDA.l GoalItemRequirement : AND.w #$00FF : BNE + : RTL : + ; Star Meter
|
|
PHX
|
|
LDX.w #$0000
|
|
|
|
LDA.l GoalItemIcon : STA $7EC72C, X : INX #2 ; draw star icon and move the cursor
|
|
|
|
LDA.l !GOAL_COUNTER
|
|
AND.w #$00FF
|
|
JSL.l HexToDec
|
|
LDA $7F5006 : AND.w #$00FF : ORA.w #$2400 : STA $7EC72C, X : INX #2 ; draw 10's digit and move the cursor
|
|
LDA $7F5007 : AND.w #$00FF : ORA.w #$2400 : STA $7EC72C, X : INX #2 ; draw 1's and move the cursor
|
|
|
|
LDA.w #$2830 : STA $7EC72C, X : INX #2 ; draw slash and move the cursor
|
|
|
|
LDA.l GoalItemRequirement
|
|
AND.w #$00FF
|
|
JSL.l HexToDec
|
|
LDA $7F5006 : AND.w #$00FF : ORA.w #$2400 : STA $7EC72C, X : INX #2 ; draw 10's digit and move the cursor
|
|
LDA $7F5007 : AND.w #$00FF : ORA.w #$2400 : STA $7EC72C, X : INX #2 ; draw 1's and move the cursor
|
|
PLX
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
GoalItemGanonCheck:
|
|
LDA $0E20, X : CMP.b #$D6 : BNE .success ; skip if not ganon
|
|
JSL.l CheckGanonVulnerability
|
|
BCS .success
|
|
|
|
.fail
|
|
LDA $0D80, X : CMP.b #17 : !BLT .success ; decmial 17 because Acmlm's chart is decimal
|
|
LDA.b #$00
|
|
RTL
|
|
.success
|
|
LDA $44 : CMP.b #$80 ; thing we wrote over
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
;Carry clear = ganon invincible
|
|
;Carry set = ganon vulnerable
|
|
CheckGanonVulnerability:
|
|
LDA InvincibleGanon : BEQ .success
|
|
;#$00 = Off
|
|
+ : CMP #$01 : BEQ .fail
|
|
;#$01 = On
|
|
+ : CMP #$02 : BNE +
|
|
;#$02 = Require All Dungeons
|
|
LDA $7EF374 : AND.b #$07 : CMP #$07 : BNE .fail ; require all pendants
|
|
LDA $7EF37A : AND.b #$7F : CMP #$7F : BNE .fail ; require all crystals
|
|
LDA $7EF3C5 : CMP.b #$03 : !BLT .fail ; require post-aga world state
|
|
BRA .success
|
|
+ ; CMP #$03 : BNE + this is a comment
|
|
;#$03 = Require All Crystals
|
|
LDA $7EF37A : AND.b #$7F : CMP #$7F : BNE .fail ; require all crystals
|
|
BRA .success
|
|
+
|
|
.fail : CLC : RTL
|
|
.success : SEC : RTL
|
|
;-------------------------------------------------------------------------------- |