let's dev 2/22/18

fixed problem with arrows sometimes not shooting
updates for infinite ammo switches
finished arrows
finished bombs
started magic
This commit is contained in:
Karkat
2018-02-22 00:12:45 -05:00
parent a39377b448
commit 84b8301fb4
6 changed files with 134 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb
org $1FFFF8 ; <- FFFF8 timestamp rom
db #$20, #$18, #$02, #$17 ; year/month/day
db #$20, #$18, #$02, #$22 ; year/month/day
;================================================================================

BIN
c2e3e.bin

Binary file not shown.

BIN
c2e3e.gfx

Binary file not shown.

View File

@@ -44,6 +44,29 @@ org $02E21B ; <- 1621B - Bank02.asm : 11211 (STA $040C)
JSL.l OnDungeonExit : NOP #2
;--------------------------------------------------------------------------------
;================================================================================
; Infinite Bombs / Arrows / Magic
;--------------------------------------------------------------------------------
org $08A17A ; <- 4217A - ancilla_arrow.asm : 42 (AND.b #$04 : BEQ .dont_spawn_sparkle)
CMP.b #$03 : db #$90 ; !BLT
org $08A40E ; <- 4240E - ancilla_arrow.asm : 331 (AND.b #$04 : BNE .use_silver_palette)
CMP.b #$03 : db #$B0 ; !BGE
;--------------------------------------------------------------------------------
org $098127 ; <- 48127 - ancilla_init.asm : 202 (LDA $7EF343 : BNE .player_has_bombs)
JSL.l LoadBombCount
org $098133 ; <- 48133 - ancilla_init.asm : 211 (STA $7EF343 : BNE .bombs_left_over)
JSL.l StoreBombCount
;--------------------------------------------------------------------------------
org $0DE4BF ; <- 6E4BF - equipment.asm : 1249 (LDA $7EF343 : AND.w #$00FF : BEQ .gotNoBombs)
JSL.l LoadBombCount16
;--------------------------------------------------------------------------------
org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X)
JSL.l IsItemAvailable
;--------------------------------------------------------------------------------
org $0DFC5B ; <- 6FC5B - headsup_display.asm : 839 (LDA .mp_tilemap+0, X : STA $7EC746)
JSL.l DrawMagicMeter : JMP.w + : NOP #21 : +
;--------------------------------------------------------------------------------
;================================================================================
; Inverted Mode
;--------------------------------------------------------------------------------
@@ -978,10 +1001,10 @@ JSL.l OnDrawHud
BRA $27
org $0DFCB8 ; <- 6FCB8
STA $7EC75A ; nudge bomb 10s digit right
JSL.l DrawBombTens ; nudge bomb 10s digit right
org $0DFCC4 ; <- 6FCC4
STA $7EC75C ; nudge bomb 1s digit right
JSL.l DrawBombOnes ; nudge bomb 1s digit right
org $0DFCDC ; <- 6FCDC
JSL.l DrawArrowTens

View File

@@ -241,8 +241,13 @@ RTL
;$388 = Turtle Rock
;$389 = Ganon's Tower
;--------------------------------------------------------------------------------
!INFINITE_ARROWS = "$7F50C8"
DrawArrowTens:
PHA : LDA.l ArrowMode : AND.w #$00FF : BNE +
LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite
.infinite
PLA : LDA.w #$2431 : STA $7EC760 : RTL
.finite
PLA : STA $7EC760 : RTL
+
PLA
@@ -250,11 +255,39 @@ RTL
;--------------------------------------------------------------------------------
DrawArrowOnes:
PHA : LDA.l ArrowMode : AND.w #$00FF : BNE +
LDA !INFINITE_ARROWS : AND.w #$00FF : BEQ .finite
.infinite
PLA : LDA.w #$2432 : STA $7EC762 : RTL
.finite
PLA : STA $7EC762 : RTL
+
PLA
RTL
;--------------------------------------------------------------------------------
;--------------------------------------------------------------------------------
!INFINITE_BOMBS = "$7F50C9"
DrawBombTens:
PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE +
LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite
.infinite
PLA : LDA.w #$2431 : STA $7EC75A : RTL
.finite
PLA : STA $7EC75A : RTL
+
PLA
RTL
;--------------------------------------------------------------------------------
DrawBombOnes:
PHA ;;; LDA.l ArrowMode : AND.w #$00FF : BNE +
LDA !INFINITE_BOMBS : AND.w #$00FF : BEQ .finite
.infinite
PLA : LDA.w #$2432 : STA $7EC75C : RTL
.finite
PLA : STA $7EC75C : RTL
+
PLA
RTL
;--------------------------------------------------------------------------------
DrawBootsInMenuLocation:
LDA.l HUDDungeonItems : BNE +
LDA.w #$1608 : STA $00
@@ -263,6 +296,46 @@ DrawBootsInMenuLocation:
LDA.w #$1588 : STA $00
RTL
;--------------------------------------------------------------------------------
!INFINITE_MAGIC = "$7F50CA"
!DrawMagicMeter_mp_tilemap = "$0DFE0F"
DrawMagicMeter:
LDA !INFINITE_MAGIC : BNE + : BRL .green : +
LDX.w #$0080 ; load full magic meter graphics
LDA $1A : AND.w #$000C : LSR #2
BEQ .red
CMP.w #0001 : BEQ .yellow
CMP.w #0002 : BNE + : BRL .green : +
.blue
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EFFF : STA $7EC746
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EFFF : STA $7EC786
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EFFF : STA $7EC7C6
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EFFF : STA $7EC806
RTL
.red
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E7FF : STA $7EC746
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E7FF : STA $7EC786
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E7FF : STA $7EC7C6
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E7FF : STA $7EC806
RTL
.yellow
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$EBFF : STA $7EC746
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$EBFF : STA $7EC786
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$EBFF : STA $7EC7C6
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$EBFF : STA $7EC806
RTL
.orange
LDA !DrawMagicMeter_mp_tilemap+0, X : AND.w #$E3FF : STA $7EC746
LDA !DrawMagicMeter_mp_tilemap+2, X : AND.w #$E3FF : STA $7EC786
LDA !DrawMagicMeter_mp_tilemap+4, X : AND.w #$E3FF : STA $7EC7C6
LDA !DrawMagicMeter_mp_tilemap+6, X : AND.w #$E3FF : STA $7EC806
RTL
.green
LDA !DrawMagicMeter_mp_tilemap+0, X : STA $7EC746
LDA !DrawMagicMeter_mp_tilemap+2, X : STA $7EC786
LDA !DrawMagicMeter_mp_tilemap+4, X : STA $7EC7C6
LDA !DrawMagicMeter_mp_tilemap+6, X : STA $7EC806
RTL
;--------------------------------------------------------------------------------
DrawGlovesInMenuLocation:
LDA.l HUDDungeonItems : BNE +
LDA.w #$1610 : STA $00

View File

@@ -1,5 +1,38 @@
!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.l ArrowMode : BNE .rupees
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
@@ -14,7 +47,7 @@ DecrementArrows:
PHA : LDA $7EF340 : DEC : AND #$0002 : TAX : PLA
!SUB.l ArrowModeWoodArrowCost, X ; CMP.w #$0000
BMI .not_enough_money
STA $7EF360 : INC : BRA +
STA $7EF360 : LDA.w #$0001 : BRA +
.not_enough_money
LDA.w #$0000
+