icepalacegraphics.asm: commented out a debug sta retro.asm: check for arrows by checking arrows instead of bow tables.asm: change default retro arrow price to match the price set by the randomizer site
79 lines
1.7 KiB
NASM
79 lines
1.7 KiB
NASM
!INFINITE_BOMBS = "$7F50C9"
|
|
IsItemAvailable:
|
|
LDA !INFINITE_BOMBS : BEQ .finite
|
|
.infinite
|
|
CPX.b #$04 : BNE .finite
|
|
LDA.b #$01 : RTL
|
|
.finite
|
|
LDA $7EF33F, X
|
|
RTL
|
|
LoadBombCount:
|
|
LDA !INFINITE_BOMBS : BNE .infinite
|
|
.finite
|
|
LDA $7EF343
|
|
.infinite
|
|
RTL
|
|
LoadBombCount16:
|
|
LDA !INFINITE_BOMBS : AND.w #$00FF : BNE .infinite
|
|
.finite
|
|
LDA $7EF343
|
|
.infinite
|
|
RTL
|
|
StoreBombCount:
|
|
PHA : LDA !INFINITE_BOMBS : BEQ .finite
|
|
.infinite
|
|
PLA : LDA.b #$01 : RTL
|
|
.finite
|
|
PLA : STA $7EF343
|
|
RTL
|
|
|
|
!INFINITE_ARROWS = "$7F50C8"
|
|
DecrementArrows:
|
|
LDA !INFINITE_ARROWS : BNE .infinite
|
|
LDA.l ArrowMode : BNE .rupees : BRA .normal
|
|
.infinite
|
|
LDA.b #$01 : RTL
|
|
.normal
|
|
LDA $7EF377 : BEQ .done
|
|
DEC : STA $7EF377 : INC
|
|
BRA .done
|
|
.rupees
|
|
LDA $7EF377 : BEQ .done ; don't have arrows, we're done
|
|
LDA $7EF340 : AND.b #$01 : BEQ +
|
|
LDA.b $0B99 : BNE + ; Arrow Game active and has credits left
|
|
LDA.b $0B9A : BNE + ; Arrow Game active and on last arrow
|
|
LDA.b #$00 : RTL
|
|
+
|
|
PHX
|
|
REP #$20 ; set 16-bit accumulator
|
|
LDA $7EF360 : BEQ +
|
|
PHA : LDA $7EF340 : DEC : AND #$0002 : TAX : PLA
|
|
!SUB.l ArrowModeWoodArrowCost, X ; CMP.w #$0000
|
|
BMI .not_enough_money
|
|
STA $7EF360 : LDA.w #$0001 : BRA +
|
|
.not_enough_money
|
|
LDA.w #$0000
|
|
+
|
|
SEP #$20 ; set 8-bit accumulator
|
|
PLX
|
|
.done
|
|
CMP.b #$00
|
|
RTL
|
|
|
|
ArrowGame:
|
|
LDA $0B99 : BEQ +
|
|
DEC $0B99 ; reduce minigame arrow count
|
|
LDA.l ArrowMode : BNE .rupees
|
|
.normal
|
|
LDA $7EF377 : INC #2 : STA $7EF377 ; increment arrow count (by 2 for some reason)
|
|
RTL
|
|
.rupees
|
|
PHX
|
|
REP #$20 ; set 16-bit accumulator
|
|
LDA $7EF340 : DEC : AND #$0002 : TAX
|
|
LDA $7EF360 : !ADD.l ArrowModeWoodArrowCost, X : STA $7EF360
|
|
SEP #$20 ; set 8-bit accumulator
|
|
PLX
|
|
+
|
|
RTL
|