diff --git a/darkworldspawn.asm b/darkworldspawn.asm index 9546d4c..86d8c51 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -147,6 +147,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: diff --git a/hooks.asm b/hooks.asm index d56221a..16c20fa 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2827,6 +2827,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 diff --git a/newitems.asm b/newitems.asm index f59fd34..5ebb29e 100755 --- a/newitems.asm +++ b/newitems.asm @@ -40,11 +40,12 @@ ; #$90 - Big Keys ; #$A0 - Small Keys ; #$B0 - Bee Trap -; #$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 ;-------------------------------------------------------------------------------- @@ -412,6 +413,11 @@ AddReceivedItemExpandedGetItem: LDA.b #$79 : JSL Sprite_SpawnDynamically : BMI + ; DashBeeHive_SpawnBee LDA $22 : STA $0D10, Y : LDA $23 : STA $0D30, Y ; from enemizer's Spawn_Bees LDA $20 : STA $0D00, Y : LDA $21 : STA $0D20, Y + + CMP.b #$B1 : !BLT + : CMP.b #$B6 : !BGE + ; Bomb Upgrades + LDA.l SpecialBombs : BEQ ++ + LDA #$01 : STA $7F50C9 ; infinite bombs + ++ + BRA .done + .done PLX @@ -558,16 +564,18 @@ AddReceivedItemExpanded: LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++ LDA.b #$0E : STA $02D8 : BRA .done ; Bee in a bottle +++ - ++ : 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 @@ -578,10 +586,6 @@ AddReceivedItemExpanded: ;-------------------------------------------------------------------------------- ;DATA AddReceivedItemExpanded { -; This is a temporary measure for Fish to have consistent addresses -warnpc $A08800 -org $A08800 - .y_offsets db -5, -5, -5, -5, -5, -4, -4, -5 db -5, -4, -4, -4, -2, -4, -4, -4 @@ -617,8 +621,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 ; Bee Trap - 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 @@ -659,8 +663,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 ; Bee Trap - 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 @@ -706,8 +710,8 @@ org $A08800 ;db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; *EVENT* db $47 ; Bee Trap - 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 @@ -747,8 +751,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 ; Bee Trap - 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 @@ -789,8 +793,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 1 ; Bee Trap - 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 @@ -832,8 +836,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 ; Bee Trap - 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 @@ -877,8 +881,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 ; Bee Trap - 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 @@ -965,8 +969,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 ; Bee Trap - 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 diff --git a/special_bombs.asm b/special_bombs.asm index efd7460..544bc78 100644 --- a/special_bombs.asm +++ b/special_bombs.asm @@ -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 diff --git a/swordswap.asm b/swordswap.asm index 4b0989d..9bf8271 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -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 diff --git a/tables.asm b/tables.asm index a1590ef..504898e 100644 --- a/tables.asm +++ b/tables.asm @@ -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) diff --git a/utilities.asm b/utilities.asm index ff6d37f..2b9e97d 100644 --- a/utilities.asm +++ b/utilities.asm @@ -162,9 +162,9 @@ RTL ;Bx db $2C ; Bee Trap - 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 @@ -298,8 +298,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 $04 ; Bee Trap - 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 diff --git a/zelda.asm b/zelda.asm index e0ba4ec..33a7733 100644 --- a/zelda.asm +++ b/zelda.asm @@ -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 ;--------------------------------------------------------------------------------