diff --git a/events.asm b/events.asm index f42aa50..07733f3 100644 --- a/events.asm +++ b/events.asm @@ -86,6 +86,7 @@ OnFileCreation: TAX ; what we wrote over LDA StartingEquipment+$4C : STA $700340+$4C ; copy starting equipment swaps to file select screen LDA StartingEquipment+$4E : STA $700340+$4E + LDA StartingEquipment+$4F : STA $700340+$4F ; copy starting bomb level RTL ;-------------------------------------------------------------------------------- !RNG_ITEM_LOCK_IN = "$7F5090" @@ -129,7 +130,7 @@ OnNewFile: LDA.l StartingTime : STA $7EF454 LDA.l StartingTime+2 : STA $7EF454+2 - LDX.w #$004E : - ; copy over starting equipment + LDX.w #$004F : - ; copy over starting equipment LDA StartingEquipment, X : STA $7EF340, X DEX : DEX BPL - diff --git a/fileselect.asm b/fileselect.asm index a494226..4efca5d 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -272,15 +272,16 @@ DrawPlayerFileShared: %fs_drawBottle($70035F,9,23) ; Sword + LDA.l SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .bombSword LDA.l $700359 : AND.w #$00FF : BNE + %fs_drawItemGray(3,26,FileSelectItems_fighters_sword) - BRA ++ + JMP ++ + : DEC : BNE + %fs_drawItem(3,26,FileSelectItems_fighters_sword) - BRA ++ + JMP ++ + : DEC : BNE + %fs_drawItem(3,26,FileSelectItems_master_sword) - BRA ++ + JMP ++ + : DEC : BNE + %fs_drawItem(3,26,FileSelectItems_tempered_sword) BRA ++ @@ -290,6 +291,28 @@ DrawPlayerFileShared: + ; a sword value above 4 is either corrupted or 0xFF (a.k.a. swordless) %fs_drawItemGray(3,26,FileSelectItems_fighters_sword) + .bombSword + LDA.l $70038F : AND.w #$00FF : BNE + + %fs_drawItemGray(3,26,FileSelectItems_fighters_bombs) + BRA ++ + + : DEC : BNE + + %fs_drawItem(3,26,FileSelectItems_fighters_bombs) + BRA ++ + + : DEC : BNE + + %fs_drawItem(3,26,FileSelectItems_master_bombs) + BRA ++ + + : DEC : BNE + + %fs_drawItem(3,26,FileSelectItems_tempered_bombs) + BRA ++ + + : DEC : BNE + + %fs_drawItem(3,26,FileSelectItems_gold_bombs) + BRA ++ + + : DEC : BNE + + %fs_drawItem(3,26,FileSelectItems_extra_gold_bombs) + BRA ++ + + + ; a bomb value above 5 is... who knows, let's just pretend it's 5 + %fs_drawItem(3,26,FileSelectItems_extra_gold_bombs) ++ ; Shield @@ -560,6 +583,18 @@ FileSelectItems: .good_bee_bottle dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0254|!FS_COLOR_YELLOW, #$0246|!FS_COLOR_YELLOW + .fighters_bombs + dw #$020C|!FS_COLOR_GREEN, #$020D|!FS_COLOR_GREEN, #$021C|!FS_COLOR_GREEN, #$01B1|!FS_COLOR_GREEN + .master_bombs + dw #$020C|!FS_COLOR_BLUE, #$020D|!FS_COLOR_BLUE, #$021C|!FS_COLOR_RED, #$01B2|!FS_COLOR_BLUE + .tempered_bombs + dw #$020C|!FS_COLOR_RED, #$020D|!FS_COLOR_RED, #$021C|!FS_COLOR_GREEN, #$01B3|!FS_COLOR_RED + .gold_bombs + dw #$020C|!FS_COLOR_YELLOW, #$020D|!FS_COLOR_YELLOW, #$021C|!FS_COLOR_BLUE, #$01B4|!FS_COLOR_YELLOW + .extra_gold_bombs + dw #$020C|!FS_COLOR_YELLOW, #$020D|!FS_COLOR_YELLOW, #$021C|!FS_COLOR_BLUE, #$01B5|!FS_COLOR_YELLOW + + ;-------------------------------------------------------------------------------- FileSelectDrawHudBar: LDA #$029B|!FS_COLOR_GREEN : %fs_draw16x8(0,10) @@ -570,11 +605,29 @@ FileSelectDrawHudBar: LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,11) LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,12) + LDA SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .colorBombs LDA #$028B|!FS_COLOR_BLUE : %fs_draw16x8(0,14) LDA $700343 : AND.w #$00FF JSL.l HexToDec LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,14) LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,15) + BRA ++ + .colorBombs + LDA $70038F : AND.w #$00FF : BNE + + ; no bombs, draw no icon + BRA ++ + + : DEC : BNE + + LDA #$028B|!FS_COLOR_GREEN : %fs_draw16x8(0,14) + BRA ++ + + : DEC : BNE + + LDA #$028B|!FS_COLOR_BLUE : %fs_draw16x8(0,14) + BRA ++ + + : DEC : BNE + + LDA #$028B|!FS_COLOR_RED : %fs_draw16x8(0,14) + BRA ++ + + + LDA #$028B|!FS_COLOR_YELLOW : %fs_draw16x8(0,14) + ++ LDA.l !FS_INVENTORY_SWAP_2 : AND.w #$0040 : BEQ + LDA #$0299|!FS_COLOR_RED : %fs_draw16x8(0,17) diff --git a/hooks.asm b/hooks.asm index 81cd15e..c0851b8 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2777,6 +2777,7 @@ BRA + : NOP #8 : + org $089EF8 ; ancilla_bomb@1438 (LDA.w #$04 : STA $0B) JSL SetBombSpriteColor ;-------------------------------------------------------------------------------- +; icons with numbers 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 @@ -2784,6 +2785,15 @@ db $B2, $2C, $B3, $2C, $C2, $2C, $18, $2C db $B2, $24, $B3, $24, $C2, $24, $19, $24 db $B2, $28, $B3, $28, $C2, $28, $1A, $28 db $B2, $28, $B3, $28, $C2, $28, $1B, $28 + +; icons without numbers +org $0DFC81 +db $F5, $20, $F5, $20, $F5, $20, $F5, $20 +db $B2, $3C, $B3, $3C, $C2, $3C, $C2, $7C +db $B2, $2C, $B3, $2C, $C2, $2C, $C2, $6C +db $B2, $24, $B3, $24, $C2, $24, $C2, $64 +db $B2, $28, $B3, $28, $C2, $28, $C2, $68 +db $B2, $28, $B3, $28, $C2, $28, $C2, $68 ;-------------------------------------------------------------------------------- org $079CE6 ; Bank07.asm@4632 (LDA #$80 : TSB $3A) JSL CheckDetonateBomb diff --git a/special_weapons.asm b/special_weapons.asm index 8f008b5..8428df5 100644 --- a/special_weapons.asm +++ b/special_weapons.asm @@ -265,7 +265,7 @@ DrawBombInMenu: JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs LDA.l !BOMB_LEVEL : AND.w #$00FF : BEQ .noBombs : STA $02 - LDA.w #$FC51 : STA $04 + LDA.w #$FC81 : STA $04 BRA .done .vanillaBombs LDA.w #$0001 : STA $02 @@ -296,7 +296,7 @@ DrawSwordInMenu: DrawBombInYBox: CPX.w #$0004 : BNE .done LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla - LDA !BOMB_LEVEL : AND.w #$00FF : CLC : ADC.w #$00B7 : BRA .done + LDA !BOMB_LEVEL : AND.w #$00FF : CLC : ADC.w #$00BD : BRA .done .vanilla LDA.w #$0001 .done