diff --git a/darkroomitems.asm b/darkroomitems.asm index a2d1474..679c5cc 100644 --- a/darkroomitems.asm +++ b/darkroomitems.asm @@ -1,13 +1,13 @@ CheckReceivedItemPropertiesBeforeLoad: LDA $A0 : BEQ .normalCode LDA $7EC005 : BNE .lightOff - .normalCode - LDA.l AddReceivedItemExpanded_properties, X ;Restore Rando Code +.normalCode + JSL LoadReceivedItemExpandedProperties ; get palette RTL .lightOff PHX : PHY : PHB - LDA.l AddReceivedItemExpanded_properties, X ; get palette + JSL LoadReceivedItemExpandedProperties ; get palette REP #$30 AND #$0007 ; mask out palette diff --git a/inventory.asm b/inventory.asm index 3e038ce..6a342b7 100644 --- a/inventory.asm +++ b/inventory.asm @@ -288,17 +288,17 @@ AddInventory: SEP #$20 ; Set 8-bit Accumulator LDA $040C ; get dungeon id - CMP.b #$FF : BEQ .fullItemCounts + CMP.b #$FF : BEQ .fullItemCounts - CMP.l BallNChainDungeon : BNE + + CMP.l BallNChainDungeon : BNE + CPY.b #$32 : BNE + JMP .done + - CMP.b #$04 : BCS + - LDA SewersLocations : INC : STA SewersLocations - LDA HCLocations : INC : STA HCLocations - BRA .fullItemCounts - + LSR : TAX : LDA DungeonLocationsChecked, X : INC : STA DungeonLocationsChecked, X + CMP.b #$04 : BCS + + LDA SewersLocations : INC : STA SewersLocations + LDA HCLocations : INC : STA HCLocations + BRA .fullItemCounts + + LSR : TAX : LDA DungeonLocationsChecked, X : INC : STA DungeonLocationsChecked, X ++ CPX.b #$0D : BNE + LDA BigKeyField : AND #$04 : BNE ++ JSR .incrementGTowerPreBigKey @@ -319,39 +319,39 @@ AddInventory: LDA PreFluteLocations : INC : STA PreFluteLocations ; Increment Pre Mirror Counter + - REP #$20 + REP #$20 LDA TotalItemCounter : INC : STA TotalItemCounter ; Increment Item Total - SEP #$20 + SEP #$20 .itemCounts CPY.b #$00 : BNE + ; Fighter's Sword & Fighter's Shield - LDX #$01 + LDX #$01 JSR .incrementSword JSR .incrementShield JMP .done + CPY.b #$01 : BNE + ; Master Sword - LDX #$02 + LDX #$02 JSR .incrementSword JMP .done + CPY.b #$02 : BNE + ; Tempered Sword - LDX #$03 + LDX #$03 JSR .incrementSword JMP .done + CPY.b #$03 : BNE + ; Golden Sword - LDX #$04 + LDX #$04 JSR .incrementSword JMP .done + CPY.b #$04 : BNE + ; Fighter's Shield - LDX #$01 + LDX #$01 JSR .incrementShield JMP .done + CPY.b #$05 : BNE + ; Red Shield - LDX #$02 + LDX #$02 JSR .incrementShield JMP .done + CPY.b #$06 : BNE + ; Mirror Shield - LDX #$03 + LDX #$03 JSR .incrementShield JMP .done + CPY.b #$07 : !BLT + ; Items $07 - $0D @@ -386,22 +386,22 @@ AddInventory: JMP .done + CPY.b #$20 : BNE + ; Crystal JSR .incrementCrystal - JSR .setDungeonCompletion + JSR .setDungeonCompletion JMP .done + CPY.b #$21 : BNE + ; Bug Net JSR .incrementY JMP .done + CPY.b #$22 : BNE + ; Blue Mail - LDX #$01 - JSR .incrementMail + LDX #$01 + JSR .incrementMail + CPY.b #$23 : BNE + ; Red Mail - LDX #$02 - JSR .incrementMail + LDX #$02 + JSR .incrementMail + CPY.b #$24 : BNE + ; Small Key JSR .incrementKey JMP .done + CPY.b #$25 : BNE + ; Compass - JSL MaybeFlagCompassTotalPickup + JSL MaybeFlagCompassTotalPickup JSR .incrementCompass JMP .done + CPY.b #$26 : BNE + ; Liar Heart (Container) @@ -432,7 +432,7 @@ AddInventory: + CPY.b #$37 : !BLT + ; Items $37 - $39 - Pendants CPY.b #$3A : !BGE + JSR .incrementPendant - JSR .setDungeonCompletion + JSR .setDungeonCompletion JMP .done + CPY.b #$3A : !BLT + ; Items $3A - $3B - Bow & Silver Arrows CPY.b #$3C : !BGE + @@ -452,7 +452,7 @@ AddInventory: JSR .incrementY JMP .done + CPY.b #$49 : BNE + ; Fighter's Sword - LDX #$01 + LDX #$01 JSR .incrementSword JMP .done + CPY.b #$4A : BNE + ; Flute (Active) @@ -472,15 +472,15 @@ AddInventory: JSR .incrementCapacity JMP .done + CPY.b #$50 : BNE + ; Master Sword (Safe) - LDX #$02 + LDX #$02 JSR .incrementSword JMP .done + CPY.b #$51 : BNE + ; 5 Bomb Capacity Upgrade - LDX #$02 + LDX #$02 JSR .maybeIncrementBombs JMP .done + CPY.b #$52 : BNE + ; 10 Bomb Capacity Upgrade - LDX #$02 + LDX #$02 JSR .maybeIncrementBombs JMP .done + CPY.b #$51 : !BLT + ; Items $51 - $54 - Capacity Upgrades @@ -491,15 +491,15 @@ AddInventory: JSR .incrementBow JMP .done + CPY.b #$5E : BNE + ; Progressive Sword - LDA SwordEquipment : INC : TAX + LDA SwordEquipment : INC : TAX JSR .incrementSword JMP .done + CPY.b #$5F : BNE + ; Progressive Shield - LDA ShieldEquipment : INC : TAX + LDA ShieldEquipment : INC : TAX JSR .incrementShield JMP .done + CPY.b #$60 : BNE + ; Progressive Armor - LDA ArmorEquipment : INC : TAX + LDA ArmorEquipment : INC : TAX JSR .incrementMail JMP .done + CPY.b #$61 : BNE + ; Progressive Lifting Glove @@ -515,7 +515,7 @@ AddInventory: JMP .done + CPY.b #$80 : !BLT + ; Items $80 - $8F - Free Compasses CPY.b #$90 : !BGE + - JSL MaybeFlagCompassTotalPickup + JSL MaybeFlagCompassTotalPickup JSR .incrementCompass JMP .done + CPY.b #$90 : !BLT + ; Items $90 - $9F - Free Big Keys @@ -526,14 +526,18 @@ AddInventory: CPY.b #$B0 : !BGE + JSR .incrementKey JMP .done - + CPY.b #$B1 : !BLT + ; Items $B1 - $B6 - Bomb Upgrades - CPY.b #$B7 : !BGE + - JSR .incrementBombLevel - JMP .done - + CPY.b #$B7 : !BLT + ; Items $B7 - $BC - Cane Upgrades - CPY.b #$BD : !BGE + - JSR .incrementCaneLevel - JMP .done + + CPY.b #$B6 : BNE + ; Item $B6 - Bomb Upgrade + JSR .stampSword ; update "first bomb" timestamp + LDA.l SpecialWeaponLevel ; get current bomb level + CMP #$05 : !BGE ++ ; check if already maxed + INC : STA.l SpecialWeaponLevel + ++ JMP .done + + CPY.b #$B7 : BNE + ; Item $B7 - Cane Upgrade + JSR .stampSword ; update "first cane" timestamp + LDA.l SpecialWeaponLevel ; get current cane level + CMP #$05 : !BGE ++ ; check if already maxed + INC : STA.l SpecialWeaponLevel + ++ JMP .done + .done PLP : PLX : PLA @@ -583,29 +587,21 @@ RTS .incrementSword JSR .stampSword - LDA HighestSword - INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better sword - TXA : STA HighestSword - + -RTS - -.incrementBombLevel - JSR .stampSword ; update "first bomb" timestamp -RTS - -.incrementCaneLevel - JSR .stampSword ; update "first cane" timestamp + LDA HighestSword + INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better sword + TXA : STA HighestSword + + RTS .incrementShield - LDA HighestShield - INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better shield - TXA : STA HighestShield - + + LDA HighestShield + INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better shield + TXA : STA HighestShield + + RTS .incrementBow - LDA BowEquipment : BNE .dontCount ; Don't increment Y item count for extra bows + LDA BowEquipment : BNE .dontCount ; Don't increment Y item count for extra bows .incrementY LDA YAItemCounter : !ADD #$08 : STA YAItemCounter .dontCount @@ -638,10 +634,10 @@ RTS RTS .incrementMail - LDA HighestMail - INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better mail - TXA : STA HighestMail - + + LDA HighestMail + INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better mail + TXA : STA HighestMail + + RTS .incrementKeyLong @@ -649,7 +645,7 @@ RTS RTL .incrementKey - LDA SmallKeyCounter : INC : STA SmallKeyCounter + LDA SmallKeyCounter : INC : STA SmallKeyCounter RTS .incrementCompass @@ -661,7 +657,7 @@ RTS RTS .incrementGTowerPreBigKey - LDA PreGTBKLocations : INC : STA PreGTBKLocations + LDA PreGTBKLocations : INC : STA PreGTBKLocations RTS .maybeIncrementBombs @@ -688,8 +684,8 @@ RTL + : LDA SpecialWeaponLevel ++ BNE + : - - LDA SwordlessBossKills : INC : STA SwordlessBossKills - RTS + LDA SwordlessBossKills : INC : STA SwordlessBossKills + RTS + CMP #$FF : BEQ - + CMP #$01 : BNE + %TopHalf(SwordBossKills) : RTS @@ -1093,8 +1089,8 @@ RTL SpawnShovelItem: LDA.b #$01 : STA !REDRAW - LDA $03FC : BEQ + - JSL DiggingGameGuy_AttemptPrizeSpawn + LDA $03FC : BEQ + + JSL DiggingGameGuy_AttemptPrizeSpawn JMP .skip + diff --git a/itemdowngrade.asm b/itemdowngrade.asm index c9c80cc..89b4e68 100644 --- a/itemdowngrade.asm +++ b/itemdowngrade.asm @@ -29,9 +29,6 @@ ItemDowngradeFixMain: CPY.b #$13 : BEQ .isShovel ; Shovel CPY.b #$29 : BEQ .isMushroom ; Mushroom - CPY.b #$B1 : !BLT + : CPY.b #$B6 : !BLT .isBombUpgrade : + - CPY.b #$B7 : !BLT + : CPY.b #$BC : !BLT .isCaneUpgrade : + - CPY.b #$00 : BEQ .isUncleSwordShield ; Fighter's Sword & Shield .done @@ -63,7 +60,7 @@ RTS RTS .isSword PHA - LDA HighestSword : STA $04 + LDA HighestSword : STA $04 TYA ; load sword item CMP.b #$49 : BNE + : LDA.b #$00 : + ; convert extra fighter's sword to normal one CMP.b #$50 : BNE + : LDA.b #$01 : + ; convert extra master sword to normal one @@ -73,28 +70,6 @@ RTS JMP .done + PLA -JMP .done - .isBombUpgrade - PHA - TYA ; load bomb upgrade item - !SUB #$B0 ; convert to bomb level - CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade) - LDA.l SpecialWeaponLevel : !ADD #$B0 ; convert to item id - TAY : PLA : LDA.l SpecialWeaponLevel ; put bomb level into the thing to write - JMP .done - + - PLA -JMP .done - .isCaneUpgrade - PHA - TYA ; load cane upgrade item - !SUB #$B6 ; convert to cane level - CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade) - LDA.l SpecialWeaponLevel : !ADD #$B6 ; convert to item id - TAY : PLA : LDA.l SpecialWeaponLevel ; put cane level into the thing to write - JMP .done - + - PLA JMP .done .isUncleSwordShield PHA diff --git a/newitems.asm b/newitems.asm index ce16882..1d96ec1 100755 --- a/newitems.asm +++ b/newitems.asm @@ -40,18 +40,13 @@ ; #$90 - Big Keys ; #$A0 - Small Keys ; #$B0 - reserved for bee traps -; #$B1 - L-1 Bombs -; #$B2 - L-2 Bombs -; #$B3 - L-3 Bombs -; #$B4 - L-4 Bombs -; #$B5 - L-5 Bombs -; #$B6 - Progressive Bombs -; #$B7 - L-1 Cane -; #$B8 - L-2 Cane -; #$B9 - L-3 Cane -; #$BA - L-4 Cane -; #$BB - L-5 Cane -; #$BC - Progressive Cane +; #$B1 - reserved for bonk shuffle +; #$B2 - reserved for bonk shuffle +; #$B3 - reserved for bonk shuffle +; #$B4 - reserved for bonk shuffle +; #$B5 - reserved for bonk shuffle +; #$B6 - Progressive Bomb +; #$B7 - Progressive Cane ; #$FE - Server Request (Asychronous Chest) ; #$FF - Null Chest ;-------------------------------------------------------------------------------- @@ -398,11 +393,10 @@ AddReceivedItemExpandedGetItem: LDA CurrentSmallKeys : INC : STA CurrentSmallKeys ++ JMP .done - + CMP.b #$B1 : !BLT + : CMP.b #$B7 : !BGE + ; Bomb Upgrades - LDA.l SpecialWeapons : CMP #$01 : BNE .done - LDA #$01 : STA InfiniteBombsModifier - JMP .done - + : CMP.b #$B7 : !BLT + : CMP.b #$BD : !BGE + ; Cane Upgrades + + CMP.b #$B6 : BNE + ; Bomb Upgrade + LDA #$01 : STA InfiniteBombsModifier + JMP .done + + : CMP.b #$B7 : BNE + ; Cane Upgrade LDA.l SpecialWeapons : CMP #$03 : BEQ .blue_cane CMP #$04 : BEQ .red_cane BRA .done @@ -533,30 +527,6 @@ AddReceivedItemExpanded: JSL.l GetRNGItemMulti : STA $02D8 LDA #$FF : STA !LOCK_IN ; clear lock-in JMP .done - ++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs - LDA SpecialWeaponLevel - CMP.b #$00 : BNE + ; have no Bombs - LDA.b #$B1 : STA $02D8 : JMP .done - + : CMP.b #$01 : BNE + ; have L-1 Bombs - LDA.b #$B2 : STA $02D8 : JMP .done - + : CMP.b #$02 : BNE + ; have L-2 Bombs - LDA.b #$B3 : STA $02D8 : JMP .done - + : CMP.b #$03 : BNE + ; have L-3 Bombs - LDA.b #$B4 : STA $02D8 : JMP .done - + ; Everything Else - LDA.b #$B5 : STA $02D8 : JMP .done - ++ : CMP.b #$BC : BNE ++ ; Progressive Cane - LDA SpecialWeaponLevel - CMP.b #$00 : BNE + ; have no Cane - LDA.b #$B7 : STA $02D8 : JMP .done - + : CMP.b #$01 : BNE + ; have L-1 Cane - LDA.b #$B8 : STA $02D8 : JMP .done - + : CMP.b #$02 : BNE + ; have L-2 Cane - LDA.b #$B9 : STA $02D8 : JMP .done - + : CMP.b #$03 : BNE + ; have L-3 Cane - LDA.b #$BA : STA $02D8 : JMP .done - + ; Everything Else - LDA.b #$BB : STA $02D8 : JMP .done ++ .done PLX : PLA @@ -602,9 +572,10 @@ AddReceivedItemExpanded: 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, -4 ; Bomb Upgrades - db -4, -4, -4, -4, -4, -4 ; Cane Upgrades - db -4, -4, -4 ; Unused + 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, -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 @@ -645,9 +616,10 @@ AddReceivedItemExpanded: ;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, 0 ; Bomb Upgrades - db 4, 4, 4, 4, 4, 4 ; Cane Upgrades - db 0, 0, 0 ; Unused + 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, 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 @@ -692,9 +664,10 @@ AddReceivedItemExpanded: ;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, $13 ; Bomb Upgrades - db $07, $07, $07, $07, $07, $07 ; Cane Upgrades - db $49, $49, $49 ; Unused + 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 $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 @@ -734,9 +707,10 @@ AddReceivedItemExpanded: 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, $02 ; Bomb Upgrades - db $00, $00, $00, $00, $00, $00 ; Cane Upgrades - db $02, $02, $02 ; Unused + 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, $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 @@ -777,9 +751,10 @@ AddReceivedItemExpanded: 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, 2, 1, 5, 5, 5 ; Bomb Upgrades - db 5, 5, 5, 5, 5, 5 ; Cane Upgrades - db 4, 4, 4 ; Unused + 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 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 @@ -821,9 +796,10 @@ AddReceivedItemExpanded: 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 $F38F, $F38F, $F38F, $F38F, $F38F, $F38F ; Bomb Upgrades - dw $F38F, $F38F, $F38F, $F38F, $F38F, $F38F ; Cane Upgrades - dw $F36A, $F36A, $F36A ; Unused + 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 $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 @@ -867,9 +843,10 @@ AddReceivedItemExpanded: 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, $05, $FF ; Bomb Upgrades - db $01, $02, $03, $04, $05, $FF ; Cane Upgrades - db $FF, $FF, $FF ; Unused + 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, $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 @@ -955,9 +932,10 @@ 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, -1 ; Bomb Upgrades - db -1, -1, -1, -1, -1, -1 ; Cane Upgrades - db -1, -1, -1 ; Unused + 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, -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 @@ -1249,3 +1227,17 @@ MaybeFlagCompassTotalEntrance: .done RTL ;-------------------------------------------------------------------------------- +LoadReceivedItemExpandedProperties: +CPX.b #$B6 : BEQ .bomb_upgrade + LDA.l AddReceivedItemExpanded_properties, X ; load from table + RTL +.bomb_upgrade + LDA SpecialWeaponLevel + CMP.b #$01 : BNE + ; L1 Bombs + LDA.b #4 : RTL + + : CMP.b #$02 : BNE + ; L2 Bombs + LDA.b #2 : RTL + + : CMP.b #$03 : BNE + ; L3 Bombs + LDA.b #1 : RTL + + ; Everything Else + LDA.b #5 : RTL diff --git a/tables.asm b/tables.asm index 0e70da25..95f3536 100644 --- a/tables.asm +++ b/tables.asm @@ -1417,17 +1417,13 @@ db $04 ;AF - Generic Small Key ;B0 - reserved for bee traps -;B1 - L-1 Bombs -;B2 - L-2 Bombs -;B3 - L-3 Bombs -;B4 - L-4 Bombs -;B5 - L-5 Bombs -;B6 - Progressive Bombs -;B7 - L-1 Cane -;B8 - L-2 Cane -;B9 - L-3 Cane -;BA - L-4 Cane -;BB - L-5 Cane +;B1 - reserved for bonk shuffle +;B2 - reserved for bonk shuffle +;B3 - reserved for bonk shuffle +;B4 - reserved for bonk shuffle +;B5 - reserved for bonk shuffle +;B6 - Progressive Bomb +;B7 - Progressive Cane ;================================================================================ ;;Residual Portal ;org $0283E0 ; PC 0x103E0 (Bank02.asm:816) (BNE) diff --git a/utilities.asm b/utilities.asm index f416582..dc16dc2 100644 --- a/utilities.asm +++ b/utilities.asm @@ -145,10 +145,10 @@ RTL ;Bx db $49 ; reserved for bee traps - db $13, $13, $13, $13, $13, $13 ; Bomb Upgrades - - db $07, $07, $07, $07, $07, $07 ; Cane Upgrades - db $49, $49, $49 ; Unused + 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 $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,9 +288,10 @@ 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 $08, $04, $02, $0A, $0A, $F7 ; Bomb Upgrades - db $0A, $0A, $0A, $0A, $0A, $0A ; Cane Upgrades - db $08, $08, $08 ; Unused + 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 $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 @@ -381,8 +382,8 @@ RTL db $15, $18, $24, $2A, $34, $35, $36, $42 db $43, $45, $59, $A0, $A1, $A2, $A3, $A4 db $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC - db $AD, $AE, $AF, $B7, $B8, $B9, $BA, $BB - db $BC, $FF, $FF, $FF, $FF, $FF, $FF, $FF + db $AD, $AE, $AF, $B7, $FF, $FF, $FF, $FF + db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF } ;--------------------------------------------------------------------------------