Bug net mode, hopefully
This commit is contained in:
@@ -2552,6 +2552,15 @@ Link_UseHammerLong:
|
||||
JSR Link_UseHammer : RTL
|
||||
warnpc $07F890
|
||||
;--------------------------------------------------------------------------------
|
||||
org $06F2DC ; bank_06.asm@22763 (LDA.w $037A : AND.b #$10)
|
||||
JSL CheckBugNet : NOP
|
||||
|
||||
org $06EB91 ; bank_06.asm@21178 (LDA.w $037A : AND.b #$10)
|
||||
JSL CheckBugNet : NOP
|
||||
;--------------------------------------------------------------------------------
|
||||
org $06ED77 ; bank_06.asm@21597 (LDA.w $0301 : AND.b #$0A : ...)
|
||||
JSL SetHammerClass
|
||||
BRA + : NOP #7 : +
|
||||
|
||||
;================================================================================
|
||||
; Variable Ganon Vulnerability
|
||||
|
||||
@@ -521,6 +521,12 @@ AddInventory:
|
||||
CMP #$05 : !BGE ++ ; check if already maxed
|
||||
INC : STA.l SpecialWeaponLevel
|
||||
++ JMP .done
|
||||
+ CPY.b #$B8 : BNE + ; Item $B8 - Bug Net Upgrade
|
||||
JSR .stampSword ; update "first bug net" timestamp
|
||||
LDA.l SpecialWeaponLevel ; get current bug net level
|
||||
CMP #$05 : !BGE ++ ; check if already maxed
|
||||
INC : STA.l SpecialWeaponLevel
|
||||
++ JMP .done
|
||||
+
|
||||
.done
|
||||
PLP : PLX : PLA
|
||||
@@ -667,6 +673,7 @@ RTL
|
||||
CMP.b #$03 : BEQ +
|
||||
CMP.b #$04 : BEQ +
|
||||
CMP.b #$05 : BEQ +
|
||||
CMP.b #$08 : BEQ +
|
||||
LDA.l SwordEquipment : BRA ++
|
||||
+ : LDA.l SpecialWeaponLevel
|
||||
++
|
||||
|
||||
28
newitems.asm
28
newitems.asm
@@ -47,6 +47,7 @@
|
||||
; #$B5 - reserved for bonk shuffle
|
||||
; #$B6 - Progressive Bomb
|
||||
; #$B7 - Progressive Cane
|
||||
; #$B8 - Progressive Bug Net
|
||||
; #$FE - Server Request (Asychronous Chest)
|
||||
; #$FF - Null Chest
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -385,6 +386,9 @@ AddReceivedItemExpandedGetItem:
|
||||
LDA #$01 : STA SomariaEquipment
|
||||
BRA .done
|
||||
BRA .done
|
||||
+ : CMP.b #$B8 : BNE + ; Cane Upgrade
|
||||
LDA #$01 : STA BugNetEquipment
|
||||
BRA .done
|
||||
+
|
||||
.done
|
||||
PLX
|
||||
@@ -547,7 +551,8 @@ AddReceivedItemExpanded:
|
||||
db -4, -4, -4, -4, -4 ; reserved for bonk shuffle
|
||||
db -4 ; Bomb Upgrade
|
||||
db -4 ; Cane Upgrade
|
||||
db -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
|
||||
db -4 ; Bug Net Upgrade
|
||||
db -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
|
||||
@@ -591,7 +596,8 @@ AddReceivedItemExpanded:
|
||||
db 0, 0, 0, 0, 0 ; reserved for bonk shuffle
|
||||
db 0 ; Bomb Upgrade
|
||||
db 4 ; Cane Upgrade
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
|
||||
db 0 ; Bug Net Upgrade
|
||||
db 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
|
||||
@@ -639,7 +645,8 @@ AddReceivedItemExpanded:
|
||||
db $49, $49, $49, $49, $49 ; reserved for bonk shuffle
|
||||
db $13 ; Bomb Upgrade
|
||||
db $07 ; Cane Upgrade
|
||||
db $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
|
||||
db $27 ; Bug Net Upgrade
|
||||
db $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
|
||||
@@ -682,7 +689,8 @@ AddReceivedItemExpanded:
|
||||
db $02, $02, $02, $02, $02 ; reserved for bonk shuffle
|
||||
db $02 ; Bomb Upgrade
|
||||
db $00 ; Cane Upgrade
|
||||
db $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
|
||||
db $02 ; Bug Net Upgrade
|
||||
db $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
|
||||
@@ -726,7 +734,8 @@ AddReceivedItemExpanded:
|
||||
db 4, 4, 4, 4, 4 ; reserved for bonk shuffle
|
||||
db 5 ; Bomb Upgrade
|
||||
db 5 ; Cane Upgrade
|
||||
db 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
|
||||
db 1 ; Bug Net Upgrade
|
||||
db 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
|
||||
@@ -771,7 +780,8 @@ AddReceivedItemExpanded:
|
||||
dw $F36A, $F36A, $F36A, $F36A, $F36A ; reserved for bonk shuffle
|
||||
dw $F38F ; Bomb Upgrade
|
||||
dw $F38F ; Cane Upgrade
|
||||
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
|
||||
dw $F38F ; Bug Net Upgrade
|
||||
dw $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
|
||||
@@ -818,7 +828,8 @@ AddReceivedItemExpanded:
|
||||
db $FF, $FF, $FF, $FF, $FF ; reserved for bonk shuffle
|
||||
db $FF ; Bomb Upgrade
|
||||
db $FF ; Cane Upgrade
|
||||
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
|
||||
db $FF ; Bug Net Upgrade
|
||||
db $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
|
||||
@@ -907,7 +918,8 @@ Link_ReceiveItemAlternatesExpanded:
|
||||
db -1, -1, -1, -1, -1 ; reserved for bonk shuffle
|
||||
db -1 ; Bomb Upgrade
|
||||
db -1 ; Cane Upgrade
|
||||
db -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
||||
db -1 ; Bug Net Upgrade
|
||||
db -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
|
||||
|
||||
@@ -23,6 +23,7 @@ DamageClassCalc:
|
||||
CMP #$03 : BEQ .cane_immune
|
||||
CMP #$04 : BEQ .special_cane
|
||||
CMP #$05 : BEQ .special_cane
|
||||
CMP #$08 : BEQ .cane_immune
|
||||
BRA .normal
|
||||
.blue_cane
|
||||
PHA
|
||||
@@ -30,6 +31,7 @@ DamageClassCalc:
|
||||
CMP #$03 : BEQ .special_cane
|
||||
CMP #$04 : BEQ .cane_immune
|
||||
CMP #$05 : BEQ .special_cane
|
||||
CMP #$08 : BEQ .cane_immune
|
||||
BRA .normal
|
||||
.cane_immune
|
||||
LDA $0E20, X : CMP.b #$1E : BEQ .normal ; crystal switch
|
||||
@@ -276,11 +278,12 @@ Utility_CheckHammerHelmasaurKingMask:
|
||||
Utility_CheckImpervious:
|
||||
LDA $0E20, X : CMP.b #$CB : BNE .normal
|
||||
.trinexx
|
||||
LDA SpecialWeapons : CMP #$01 : BEQ +
|
||||
CMP #$03 : BEQ +
|
||||
CMP #$04 : BEQ +
|
||||
CMP #$05 : BEQ +
|
||||
CMP #$06 : BEQ .check_sidenexx
|
||||
LDA SpecialWeapons : CMP.b #$01 : BEQ +
|
||||
CMP.b #$03 : BEQ +
|
||||
CMP.b #$04 : BEQ +
|
||||
CMP.b #$05 : BEQ +
|
||||
CMP.b #$06 : BEQ .check_sidenexx
|
||||
CMP.b #$08 : BEQ +
|
||||
BRA .normal
|
||||
+
|
||||
LDA $0301 : AND.b #$0A : BNE .impervious ; impervious to hammer
|
||||
@@ -298,6 +301,7 @@ Utility_CheckImpervious:
|
||||
CMP #$03 : BEQ +
|
||||
CMP #$04 : BEQ +
|
||||
CMP #$05 : BEQ +
|
||||
CMP #$08 : BEQ +
|
||||
BRA .not_impervious
|
||||
+
|
||||
LDA $0E20, X : CMP.b #$1E : BEQ .not_impervious ; crystal switch
|
||||
@@ -313,6 +317,7 @@ Utility_CheckImpervious:
|
||||
CMP #$03 : BEQ +
|
||||
CMP #$04 : BEQ +
|
||||
CMP #$05 : BEQ +
|
||||
CMP #$08 : BEQ +
|
||||
BRA .not_impervious
|
||||
+
|
||||
LDA $0CF2 : CMP #$06 : !BLT .impervious ; swords are ineffective
|
||||
@@ -322,6 +327,7 @@ Utility_CheckImpervious:
|
||||
CMP #$03 : BEQ +
|
||||
CMP #$04 : BEQ +
|
||||
CMP #$05 : BEQ +
|
||||
CMP #$08 : BEQ +
|
||||
BRA .not_impervious
|
||||
+
|
||||
LDA $0CF2 : CMP #$06 : !BGE .impervious ; non-swords are ineffective
|
||||
@@ -377,6 +383,7 @@ DrawSwordInMenu:
|
||||
CMP.w #$0003 : BEQ .specialSword
|
||||
CMP.w #$0004 : BEQ .specialSword
|
||||
CMP.w #$0005 : BEQ .specialSword
|
||||
CMP.w #$0008 : BEQ .specialSword
|
||||
LDA SwordEquipment : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword
|
||||
.hasSword
|
||||
STA $02
|
||||
@@ -462,7 +469,9 @@ CheckDetonateBomb:
|
||||
BRA .done
|
||||
.not_bomb_mode
|
||||
LDA.l SpecialWeapons : CMP.b #$06 : BEQ .release_bee
|
||||
CMP.b #$07 : BNE .done
|
||||
CMP.b #$07 : BEQ .hammer
|
||||
BRA .done
|
||||
.hammer
|
||||
LDA.l HammerEquipment : BEQ .done
|
||||
LDA.b $3A : ORA.b #$40 : STA.b $3A
|
||||
LDA.b #$04 : STA.w $0304
|
||||
@@ -603,3 +612,30 @@ INC.b $3C
|
||||
LDA.b $3C
|
||||
CMP.b #$09
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
CheckBugNet:
|
||||
LDA.w $037A : AND.b #$10 : BEQ .done ; normal behavior if not bugnet
|
||||
LDA.l SpecialWeapons : CMP.b #$08 : BNE .return_10 ; normal behavior if not bugnet mode
|
||||
.bugnet_mode
|
||||
LDA.w $0E20, X : CMP.b #$E3 : BEQ .return_10 ; normal behavior if fairy
|
||||
CMP.b #$79 : BEQ .return_10 ; normal behavior if bee
|
||||
CMP.b #$B2 : BEQ .return_10 ; normal behavior if bee
|
||||
LDA.b #$00 : BRA .done
|
||||
.return_10
|
||||
LDA.b #$10
|
||||
.done
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
SetHammerClass:
|
||||
LDA.l SpecialWeapons : CMP.b #$08 : BNE .normal ; normal behavior if not bugnet mode
|
||||
LDA.w $037A : AND.b #$10 : BEQ .normal ; normal behavior if not bugnet
|
||||
LDA.l SpecialWeaponLevel : STA.w $0CF2
|
||||
RTL
|
||||
.normal
|
||||
LDA.w $0301
|
||||
AND.b #$0A
|
||||
BEQ .not_hammer
|
||||
LDA.b #$03
|
||||
STA.w $0CF2
|
||||
.not_hammer
|
||||
RTL
|
||||
|
||||
@@ -37,6 +37,7 @@ LookupDamageLevel:
|
||||
CMP #$03 : BEQ .bomb_table
|
||||
CMP #$04 : BEQ .bomb_table
|
||||
CMP #$05 : BEQ .bomb_table
|
||||
CMP #$08 : BEQ .bomb_table
|
||||
%LookupDamageSubclass(Damage_Table) : RTL
|
||||
.bomb_table
|
||||
%LookupDamageSubclass(Damage_Table_Bombs) : RTL
|
||||
@@ -101,6 +102,7 @@ CheckTabletSword:
|
||||
CMP.b #$04 : BEQ .check_special
|
||||
CMP.b #$05 : BEQ .check_special
|
||||
CMP.b #$06 : BEQ .allow
|
||||
CMP.b #$08 : BEQ .check_special
|
||||
BRA .normal
|
||||
.allow
|
||||
LDA.b #$02 : RTL
|
||||
@@ -114,8 +116,10 @@ GetSwordLevelForEvilBarrier:
|
||||
LDA.l AllowHammerEvilBarrierWithFighterSword : BEQ +
|
||||
LDA.b #$FF : RTL
|
||||
+
|
||||
LDA.l SwordEquipment
|
||||
RTL
|
||||
LDA.l SpecialWeapons : CMP.b #$08 : BEQ +
|
||||
LDA.l SwordEquipment : RTL
|
||||
+
|
||||
LDA.l SpecialWeaponLevel : RTL
|
||||
;================================================================================
|
||||
CheckGanonHammerDamage:
|
||||
LDA.l HammerableGanon : BEQ +
|
||||
|
||||
@@ -119,6 +119,7 @@ db #$00
|
||||
; $05 = Canes-Only mode
|
||||
; $06 = Bee mode
|
||||
; $07 = Hammer on B (for use with swordless)
|
||||
; $08 = Bugnet mode
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308030 ; PC 0x180030
|
||||
EnableSRAMTrace:
|
||||
@@ -1425,6 +1426,7 @@ db $04
|
||||
;B5 - reserved for bonk shuffle
|
||||
;B6 - Progressive Bomb
|
||||
;B7 - Progressive Cane
|
||||
;B8 - Progressive Bug Net
|
||||
;================================================================================
|
||||
;;Residual Portal
|
||||
;org $0283E0 ; PC 0x103E0 (Bank02.asm:816) (BNE)
|
||||
|
||||
@@ -148,7 +148,8 @@ RTL
|
||||
db $13, $13, $13, $13, $13 ; reserved for bonk shuffle
|
||||
db $13 ; Bomb Upgrade
|
||||
db $07 ; Cane Upgrade
|
||||
db $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
|
||||
db $27 ; Bug Net Upgrade
|
||||
db $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
|
||||
@@ -211,7 +212,7 @@ RTL
|
||||
LDA.b #$08 : RTL
|
||||
++ : CMP.b #$FF : BNE ++ ; Progressive Armor
|
||||
LDA.l HighestMail
|
||||
CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||
LDA.l ProgressiveArmorReplacement
|
||||
JMP GetSpritePalette
|
||||
+ : CMP.b #$00 : BNE + ; Green Tunic
|
||||
@@ -291,7 +292,8 @@ GfxPalettes:
|
||||
db $08, $08, $08, $08, $08 ; reserved for bonk shuffle
|
||||
db $F7 ; Bomb Upgrade
|
||||
db $0A ; Cane Upgrade
|
||||
db $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
||||
db $02 ; Bug Net Upgrade
|
||||
db $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
|
||||
|
||||
Reference in New Issue
Block a user