Add L-1 bombs as separate from no bombs in bomb-only mode

This commit is contained in:
2021-07-11 12:52:20 -07:00
parent 08166fe669
commit 1b698808c3
8 changed files with 62 additions and 41 deletions

View File

@@ -145,6 +145,11 @@ SetEscapeAssist:
BIT.b #$20 : BEQ + : STA !INFINITE_BOMBS : +
BIT.b #$10 : BEQ + : STA !INFINITE_ARROWS : +
++
LDA.l SpecialBombs : BEQ +
LDA.l $7EF4A8 : BEQ +
LDA #$01 : STA !INFINITE_BOMBS
+
RTL
;--------------------------------------------------------------------------------
SetSilverBowMode:

View File

@@ -2756,6 +2756,7 @@ JSL DrawSwordInMenu
BRA + : NOP #16 : +
;--------------------------------------------------------------------------------
org $0DFC51 ; is this being used? I hope not! let's find out if anything breaks!
db $F5, $20, $F5, $20, $F5, $20, $F5, $20
db $B2, $3C, $B3, $3C, $C2, $3C, $17, $3C
db $B2, $2C, $B3, $2C, $C2, $2C, $18, $2C
db $B2, $24, $B3, $24, $C2, $24, $19, $24

View File

@@ -40,11 +40,12 @@
; #$90 - Big Keys
; #$A0 - Small Keys
; #$B0 - reserved for bee traps
; #$B1 - L-2 Bombs
; #$B2 - L-3 Bombs
; #$B3 - L-4 Bombs
; #$B4 - L-5 Bombs
; #$B5 - Progressive Bombs
; #$B1 - L-1 Bombs
; #$B2 - L-2 Bombs
; #$B3 - L-3 Bombs
; #$B4 - L-4 Bombs
; #$B5 - L-5 Bombs
; #$B6 - Progressive Bombs
; #$FE - Server Request (Asychronous Chest)
; #$FF - Null Chest
;--------------------------------------------------------------------------------
@@ -400,6 +401,11 @@ AddReceivedItemExpandedGetItem:
LDA $7EF36F : INC : STA $7EF36F
++
JMP .done
+ CMP.b #$B1 : !BLT + : CMP.b #$B6 : !BGE + ; Bomb Upgrades
LDA.l SpecialBombs : BEQ ++
LDA #$01 : STA $7F50C9 ; infinite bombs
++
BRA .done
+
.done
PLX
@@ -508,7 +514,7 @@ AddReceivedItemExpanded:
LDA $7EF340 : INC : LSR : CMP.l ProgressiveBowLimit : !BLT +
LDA.l ProgressiveBowReplacement : STA $02D8 : JMP .done
+ : CMP.b #$00 : BNE + ; No Bow
LDA.b #$3A : STA $02D8 : BRA .done
LDA.b #$3A : STA $02D8 : JMP .done
+ ; Any Bow
LDA.b #$3B : STA $02D8 : BRA .done
++ : CMP.b #$65 : BNE ++ ; Progressive Bow 2
@@ -526,16 +532,18 @@ AddReceivedItemExpanded:
JSL.l GetRNGItemMulti : STA $02D8
LDA #$FF : STA !LOCK_IN ; clear lock-in
BRA .done
++ : CMP.b #$B5 : BNE ++ ; Progressive Bombs
++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs
LDA $7EF4A8
CMP.b #$00 : BNE + ; L-1 Bombs
CMP.b #$00 : BNE + ; have no Bombs
LDA.b #$B1 : STA $02D8 : JMP .done
+ : CMP.b #$01 : BNE + ; L-2 Bombs
+ : CMP.b #$01 : BNE + ; have L-1 Bombs
LDA.b #$B2 : STA $02D8 : JMP .done
+ : CMP.b #$02 : BNE + ; L-3 Bombs
+ : CMP.b #$02 : BNE + ; have L-2 Bombs
LDA.b #$B3 : STA $02D8 : JMP .done
+ ; Everything Else
+ : CMP.b #$03 : BNE + ; have L-3 Bombs
LDA.b #$B4 : STA $02D8 : JMP .done
+ ; Everything Else
LDA.b #$B5 : STA $02D8 : JMP .done
++
.done
PLX : PLA
@@ -585,8 +593,8 @@ org $A08800
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Free Big Key
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Free Small Key
db -4 ; reserved for bee traps
db -4, -4, -4, -4, -4 ; Bomb Upgrades
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4 ; Bomb Upgrades
db -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
@@ -627,8 +635,8 @@ org $A08800
;db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; *EVENT*
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Small Key
db 0 ; reserved for bee traps
db 0, 0, 0, 0, 0 ; Bomb Upgrades
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0; Bomb Upgrades
db 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
@@ -673,8 +681,8 @@ org $A08800
;db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; *EVENT*
;db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; *EVENT*
db $49 ; reserved for bee traps
db $13, $13, $13, $13, $13 ; Bomb Upgrades
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $13, $13, $13, $13, $13, $13 ; Bomb Upgrades
db $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
@@ -714,8 +722,8 @@ org $A08800
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Free Big Key
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; Free Small Key
db $02 ; reserved for bee traps
db $02, $02, $02, $02, $02 ; Bomb Upgrades
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02; Bomb Upgrades
db $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
@@ -756,8 +764,8 @@ org $A08800
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Big Key
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Small Key
db 4 ; reserved for bee traps
db 5, 5, 5, 5, 5 ; Bomb Upgrades
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 5, 5, 5, 5, 5, 5 ; Bomb Upgrades
db 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
@@ -799,8 +807,8 @@ org $A08800
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Free Big Key
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Free Small Key
dw $F36A ; reserved for bee traps
dw $F4A8, $F4A8, $F4A8, $F4A8, $F4A8 ; Bomb Upgrades
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F4A8, $F4A8, $F4A8, $F4A8, $F4A8, $F4A8 ; Bomb Upgrades
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
@@ -844,8 +852,8 @@ org $A08800
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Free Big Key
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Free Small Key
db $FF ; reserved for bee traps
db $01, $02, $03, $04, $FF ; Bomb Upgrades
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $01, $02, $03, $04, $05, $FF ; Bomb Upgrades
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
@@ -932,8 +940,8 @@ Link_ReceiveItemAlternatesExpanded:
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Big Key
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Small Key
db -1 ; reserved for bee traps
db -1, -1, -1, -1, -1 ; Bomb Upgrades
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1 ; Bomb Upgrades
db -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused

View File

@@ -29,15 +29,16 @@ DamageClassCalc:
.not_cane
CMP #$07 : BNE .no_change
LDA SpecialBombs : BEQ .normal_bombs
LDA !BOMB_LEVEL : BEQ .normal_bombs
LDA $0E20, X : CMP.b #$D6 : BEQ .unstunned_ganon
CMP.b #$D7 : BEQ .stunned_ganon
CMP.b #$88 : BEQ .mothula
CMP.b #$92 : BEQ .helmasaur_king
.bomb_level
LDA !BOMB_LEVEL : INC A
LDA !BOMB_LEVEL
BRA .done
.mothula
LDA !BOMB_LEVEL : INC A
LDA !BOMB_LEVEL
CMP #$04 : !BGE .fix_mothula
BRA .done
.fix_mothula

View File

@@ -135,7 +135,7 @@ CheckTabletSword:
LDA.b #$02 : RTL
+
LDA.l SpecialBombs : BEQ +
LDA $7EF4A8 : CMP #$01 : !BLT + ; check for master bombs
LDA $7EF4A8 : CMP #$02 : !BLT + ; check for master bombs
LDA.b #$02 : RTL
+
LDA $7EF359 ; get actual sword value

View File

@@ -1412,11 +1412,12 @@ db $04
;AF - Generic Small Key
;B0 - reserved for bee traps
;B1 - L-2 Bombs
;B2 - L-3 Bombs
;B3 - L-4 Bombs
;B4 - L-5 Bombs
;B5 - Progressive Bombs
;B1 - L-1 Bombs
;B2 - L-2 Bombs
;B3 - L-3 Bombs
;B4 - L-4 Bombs
;B5 - L-5 Bombs
;B6 - Progressive Bombs
;================================================================================
;;Residual Portal
;org $0283E0 ; PC 0x103E0 (Bank02.asm:816) (BNE)

View File

@@ -152,9 +152,9 @@ RTL
;Bx
db $49 ; reserved for bee traps
db $13, $13, $13, $13, $13 ; Bomb Upgrades
db $13, $13, $13, $13, $13, $13 ; Bomb Upgrades
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
@@ -288,8 +288,8 @@ RTL
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Big Key
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Small Key
db $08 ; reserved for bee traps
db $0A, $0A, $0A, $0A, $0A; Bomb Upgrades
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $0A, $0A, $0A, $0A, $0A, $0A ; Bomb Upgrades
db $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused

View File

@@ -9,7 +9,7 @@ SpawnZelda:
+ RTL
;--------------------------------------------------------------------------------
EndRainState:
LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already
LDA $7EF3C5 : CMP.b #$02 : !BGE ++ ; skip if past escape already
LDA.l EscapeAssist : AND #$44
CMP #$04 : BNE + : LDA #$00 : STA !INFINITE_MAGIC : +
CMP #$40 : BNE + : STA !INFINITE_MAGIC : +
@@ -19,8 +19,13 @@ EndRainState:
LDA.l EscapeAssist : AND #$11
CMP #$01 : BNE + : LDA #$00 : STA !INFINITE_ARROWS : +
CMP #$10 : BNE + : STA !INFINITE_ARROWS : +
LDA.l SpecialBombs : BEQ +
LDA.l $7EF4A8 : BEQ +
LDA #$01 : STA !INFINITE_BOMBS
+
LDA.b #$02 : STA $7EF3C5 ; end rain state
JSL MaybeSetPostAgaWorldState
+
++
RTL
;--------------------------------------------------------------------------------