diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index e339e59..c927746 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -259,8 +259,8 @@ incbin ice_palace_floor.bin warnpc $31C801 org $31C800 -Damage_Table: -incbin damage_table.bin +Damage_Table_Bombos: +incbin damage_table_bombos.bin warnpc $31D001 org $31D000 @@ -733,3 +733,5 @@ Sprite_GetEmptyBottleIndex: ; this is totally in sprite_bees.asm org $1EF4E7 Sprite_PlayerCantPassThrough: ;================================================================================ + +incsrc bombos_only.asm diff --git a/bombos_only.asm b/bombos_only.asm new file mode 100644 index 0000000..cd0fc33 --- /dev/null +++ b/bombos_only.asm @@ -0,0 +1,203 @@ +!ITEMCOUNT = $F0 + +; ============== Replace all picked up item icons with bombos ================= +org AddReceivedItemExpanded_y_offsets +fillbyte -4 +fill !ITEMCOUNT + +org AddReceivedItemExpanded_x_offsets +fillbyte 0 +fill !ITEMCOUNT + +org AddReceivedItemExpanded_item_graphics_indices +fillbyte $1B +fill !ITEMCOUNT + +org AddReceivedItemExpanded_wide_item_flag +fillbyte $02 +fill !ITEMCOUNT + +org AddReceivedItemExpanded_properties +fillbyte 4 +fill !ITEMCOUNT + +org GetSpriteID_gfxSlots +fillbyte $1B +fill !ITEMCOUNT + +org GetSpritePalette_gfxPalettes +fillbyte $08 +fill !ITEMCOUNT + +org IsNarrowSprite_smallSprites +padbyte $FF +pad PrepDynamicTile +; ============================================================================= + +; ===================== Remove attempt to animate rupees ====================== +org $08C672 +LDA.b #$0F : NOP +; ============================================================================= + + +; ===================== Replace all menu icons with bombos ==================== +macro bombos_icon() + dw $287D, $287E, $E87E, $E87D ; Bombos +endmacro + +macro empty_icon() + dw $20F5, $20F5, $20F5, $20F5 ; No bombos +endmacro + +org $0DF649 +%empty_icon() ; No bow +%bombos_icon() ; Empty bow +%bombos_icon() ; Bow and arrows +%bombos_icon() ; Empty silvers bow +%bombos_icon() ; Silver bow and arrows + +%empty_icon() ; No boomerang +%bombos_icon() ; Blue boomerang +%bombos_icon() ; Red boomerang + +%empty_icon() ; No hookshot +%bombos_icon() ; Hookshot + +%empty_icon() ; No bombs +%bombos_icon() ; Bombs + +%empty_icon() ; No powder +%bombos_icon() ; Mushroom +%bombos_icon() ; Powder + +%empty_icon() ; No fire rod +%bombos_icon() ; Fire rod + +%empty_icon() ; No ice rod +%bombos_icon() ; Ice rod + +%empty_icon() ; No bombos +%bombos_icon() ; Bombos + +%empty_icon() ; No ether +%bombos_icon() ; Ether + +%empty_icon() ; No quake +%bombos_icon() ; Quake + +%empty_icon() ; No lamp +%bombos_icon() ; Lamp + +%empty_icon() ; No hammer +%bombos_icon() ; Hammer + +%empty_icon() ; No flute +%bombos_icon() ; Shovel +%bombos_icon() ; Flute (inactive) +%bombos_icon() ; Flute (active) + +%empty_icon() ; No net +%bombos_icon() ; Net + +%empty_icon() ; No book +%bombos_icon() ; Book of Mudora + +%empty_icon() ; No bottle +%bombos_icon() ; Mushroom +%bombos_icon() ; Empty bottle +%bombos_icon() ; Red potion +%bombos_icon() ; Green potion +%bombos_icon() ; Blue potion +%bombos_icon() ; Fairy +%bombos_icon() ; Bee +%bombos_icon() ; Good bee + +%empty_icon() ; No somaria +%bombos_icon() ; Cane of Somaria + +%empty_icon() ; No byrna +%bombos_icon() ; Cane of Byrna + +%empty_icon() ; No cape +%bombos_icon() ; Cape + +%empty_icon() ; No mirror +%bombos_icon() ; Map +%bombos_icon() ; Mirror +%bombos_icon() ; Triforce (displays as arrows and bombs) + +%empty_icon() ; No glove +%bombos_icon() ; Power glove +%bombos_icon() ; Titan's mitt + +%empty_icon() ; No boots +%bombos_icon() ; Pegasus boots + +%empty_icon() ; No flippers +%bombos_icon() ; Flippers + +%empty_icon() ; No pearl +%bombos_icon() ; Moon pearl + +%empty_icon() ; Nothing + +%empty_icon() ; No sword +%bombos_icon() ; Fighter sword +%bombos_icon() ; Master sword +%bombos_icon() ; Tempered sword +%bombos_icon() ; Gold sword + +%empty_icon() ; No shield +%bombos_icon() ; Fighter shield +%bombos_icon() ; Fire shield +%bombos_icon() ; Mirror shield + +%bombos_icon() ; Green mail +%bombos_icon() ; Blue mail +%bombos_icon() ; Red mail + +%empty_icon() ; No compass +%bombos_icon() ; Compass + +%empty_icon() ; No big key +%bombos_icon() ; Big key +%bombos_icon() ; Big key and chest + +%empty_icon() ; No map +%bombos_icon() ; Map + +%empty_icon() ; No red pendant +%bombos_icon() ; Red pendant + +%empty_icon() ; No blue pendant +%bombos_icon() ; Blue pendant + +%empty_icon() ; No green pendant +%bombos_icon() ; Green pendant + +%empty_icon() ; No white glove? +%bombos_icon() ; White glove? + +%empty_icon() ; 0 heart pieces +dw $287D, $20F5, $20F5, $20F5 ; 1 heart piece +dw $287D, $20F5, $E87E, $20F5 ; 2 heart pieces +dw $287D, $287E, $E87E, $20F5 ; 3 heart pieces +; ============================================================================= + +; ===================== Replace menu pendants with bombos ===================== +org DrawPendantCrystalDiagram_row0 +dw $28FB, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $28F9, $68FB +dw $28FC, $24F5, $24F5, $24F5, $307D, $307E, $24F5, $24F5, $24F5, $68FC +dw $28FC, $24F5, $24F5, $24F5, $F07E, $F07D, $24F5, $24F5, $24F5, $68FC +dw $28FC, $24F5, $307D, $307E, $24F5, $24F5, $307D, $307E, $24F5, $68FC +dw $28FC, $24F5, $F07E, $F07D, $24F5, $24F5, $F07E, $F07D, $24F5, $68FC +dw $28FC, $24F5, $24F5, $24F5, $307D, $307E, $24F5, $24F5, $24F5, $68FC +dw $28FC, $24F5, $307D, $307E, $307D, $307E, $307D, $307E, $24F5, $68FC +dw $28FC, $24F5, $F07E, $F07D, $F07E, $F07D, $F07E, $F07D, $24F5, $68FC +dw $A8FB, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $A8F9, $E8FB +; ============================================================================= + +; ===================== Replace menu pendants with bombos ===================== +org $308022 +db $00 +; ============================================================================= diff --git a/damage_table_bombos.bin b/damage_table_bombos.bin new file mode 100644 index 0000000..84b5898 Binary files /dev/null and b/damage_table_bombos.bin differ diff --git a/fileselect.asm b/fileselect.asm index e689f36..8ef9ecb 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -35,6 +35,20 @@ macro fs_draw16x16(screenrow,screencol) %fs_draw16x8(+1,) endmacro +macro fs_draw_bombos_top(screenrow,screencol,color) + LDA.w #$0207| + %fs_draw8x8(,) + LDA.w #$0217||!FS_HFLIP|!FS_VFLIP + %fs_draw8x8(,+1) +endmacro + +macro fs_draw_bombos_right(screenrow,screencol,color) + LDA.w #$0217||!FS_HFLIP|!FS_VFLIP + %fs_draw8x8(,) + LDA.w #$0207||!FS_HFLIP|!FS_VFLIP + %fs_draw8x8(+1,) +endmacro + macro fs_LDY_screenpos(screenrow,screencol) LDY.w #*$20+*2+$1004 endmacro @@ -83,28 +97,28 @@ JMP DrawItemGray DrawBottle: AND.w #$00FF : BNE + - LDX #FileSelectItems_empty_bottle + LDX #FileSelectItems_bombos JMP DrawItemGray + : DEC #2 : BNE + - LDX #FileSelectItems_empty_bottle + LDX #FileSelectItems_bombos JMP DrawItem + : DEC : BNE + - LDX #FileSelectItems_red_potion + LDX #FileSelectItems_bombos JMP DrawItem + : DEC : BNE + - LDX #FileSelectItems_green_potion + LDX #FileSelectItems_bombos JMP DrawItem + : DEC : BNE + - LDX #FileSelectItems_blue_potion + LDX #FileSelectItems_bombos JMP DrawItem + : DEC : BNE + - LDX #FileSelectItems_fairy_bottle + LDX #FileSelectItems_bombos JMP DrawItem + : DEC : BNE + - LDX #FileSelectItems_bee_bottle + LDX #FileSelectItems_bombos JMP DrawItem + - LDX #FileSelectItems_good_bee_bottle + LDX #FileSelectItems_bombos JMP DrawItem @@ -155,111 +169,111 @@ DrawPlayerFileShared: ; Bow LDA.l BowTrackingSRAM : AND.w #$0040 : BEQ + LDA EquipmentSRAM+$00 : AND.w #$00FF : BEQ ++ - %fs_drawItem(3,12,FileSelectItems_silver_bow) + %fs_drawItem(3,12,FileSelectItems_bombos) BRA .bow_end ++ - %fs_drawItem(3,12,FileSelectItems_silver_arrow) + %fs_drawItem(3,12,FileSelectItems_bombos) BRA .bow_end + LDA.l EquipmentSRAM : AND.w #$00FF : BEQ + - %fs_drawItem(3,12,FileSelectItems_bow) + %fs_drawItem(3,12,FileSelectItems_bombos) BRA .bow_end + - %fs_drawItemGray(3,12,FileSelectItems_bow) + %fs_drawItemGray(3,12,FileSelectItems_bombos) .bow_end ; Boomerang LDA.l InventoryTrackingSRAM : AND.w #$00C0 : CMP.w #$00C0 : BNE + - %fs_drawItem(3,14,FileSelectItems_both_boomerang) + %fs_drawItem(3,14,FileSelectItems_bombos) BRA .boomerang_end + LDA.l InventoryTrackingSRAM : AND.w #$0040 : BEQ + - %fs_drawItem(3,14,FileSelectItems_red_boomerang) + %fs_drawItem(3,14,FileSelectItems_bombos) BRA .boomerang_end + LDA.l InventoryTrackingSRAM : AND.w #$0080 : BEQ + - %fs_drawItem(3,14,FileSelectItems_blue_boomerang) + %fs_drawItem(3,14,FileSelectItems_bombos) BRA .boomerang_end + - %fs_drawItemGray(3,14,FileSelectItems_blue_boomerang) + %fs_drawItemGray(3,14,FileSelectItems_bombos) .boomerang_end ; Hookshot - %fs_drawItemBasic(EquipmentSRAM+$02,3,16,FileSelectItems_hookshot) + %fs_drawItemBasic(EquipmentSRAM+$02,3,16,FileSelectItems_bombos) ; Bombs - ; %fs_drawItemBasic(EquipmentSRAM+$03,3,18,FileSelectItems_bombs) + ; %fs_drawItemBasic(EquipmentSRAM+$03,3,18,FileSelectItems_bombos) ; Powder LDA.l InventoryTrackingSRAM : AND.w #$0010 : BEQ + - %fs_drawItem(3,20,FileSelectItems_powder) + %fs_drawItem(3,20,FileSelectItems_bombos) BRA ++ + - %fs_drawItemGray(3,20,FileSelectItems_powder) + %fs_drawItemGray(3,20,FileSelectItems_bombos) ++ ; Mushroom LDA.l InventoryTrackingSRAM : AND.w #$0008 : BEQ + - %fs_drawItem(3,18,FileSelectItems_mushroom) + %fs_drawItem(3,18,FileSelectItems_bombos) BRA ++ + - %fs_drawItemGray(3,18,FileSelectItems_mushroom) + %fs_drawItemGray(3,18,FileSelectItems_bombos) ++ ; Flute LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ + - %fs_drawItem(7,16,FileSelectItems_flute) + %fs_drawItem(7,16,FileSelectItems_bombos) BRA ++ + - %fs_drawItemGray(7,16,FileSelectItems_flute) + %fs_drawItemGray(7,16,FileSelectItems_bombos) ++ ; Shovel LDA.l InventoryTrackingSRAM : AND.w #$0004 : BEQ + - %fs_drawItem(9,12,FileSelectItems_shovel) + %fs_drawItem(9,12,FileSelectItems_bombos) BRA ++ + - %fs_drawItemGray(9,12,FileSelectItems_shovel) + %fs_drawItemGray(9,12,FileSelectItems_bombos) ++ ; Fire Rod - %fs_drawItemBasic(EquipmentSRAM+$05,5,12,FileSelectItems_fire_rod) + %fs_drawItemBasic(EquipmentSRAM+$05,5,12,FileSelectItems_bombos) ; Ice Rod - %fs_drawItemBasic(EquipmentSRAM+$06,5,14,FileSelectItems_ice_rod) + %fs_drawItemBasic(EquipmentSRAM+$06,5,14,FileSelectItems_bombos) ; Bombos Medallion %fs_drawItemBasic(EquipmentSRAM+$07,5,16,FileSelectItems_bombos) ; Ether Medallion - %fs_drawItemBasic(EquipmentSRAM+$08,5,18,FileSelectItems_ether) + %fs_drawItemBasic(EquipmentSRAM+$08,5,18,FileSelectItems_bombos) ; Quake Medallion - %fs_drawItemBasic(EquipmentSRAM+$09,5,20,FileSelectItems_quake) + %fs_drawItemBasic(EquipmentSRAM+$09,5,20,FileSelectItems_bombos) ; Lamp - %fs_drawItemBasic(EquipmentSRAM+$0A,7,12,FileSelectItems_lamp) + %fs_drawItemBasic(EquipmentSRAM+$0A,7,12,FileSelectItems_bombos) ; Hammer - %fs_drawItemBasic(EquipmentSRAM+$0B,7,14,FileSelectItems_hammer) + %fs_drawItemBasic(EquipmentSRAM+$0B,7,14,FileSelectItems_bombos) ; Bug Net - %fs_drawItemBasic(EquipmentSRAM+$0D,7,18,FileSelectItems_bugnet) + %fs_drawItemBasic(EquipmentSRAM+$0D,7,18,FileSelectItems_bombos) ; Book of Mudora - %fs_drawItemBasic(EquipmentSRAM+$0E,7,20,FileSelectItems_book) + %fs_drawItemBasic(EquipmentSRAM+$0E,7,20,FileSelectItems_bombos) ; Red Cane - %fs_drawItemBasic(EquipmentSRAM+$10,9,14,FileSelectItems_redcane) + %fs_drawItemBasic(EquipmentSRAM+$10,9,14,FileSelectItems_bombos) ; Blue Cane - %fs_drawItemBasic(EquipmentSRAM+$11,9,16,FileSelectItems_bluecane) + %fs_drawItemBasic(EquipmentSRAM+$11,9,16,FileSelectItems_bombos) ; Cape - %fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_cape) + %fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_bombos) ; Mirror - %fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_mirror) + %fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_bombos) ; Bottles %fs_drawBottle(EquipmentSRAM+$1C,3,23) @@ -270,70 +284,70 @@ DrawPlayerFileShared: ; Sword LDA.l SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .bombSword LDA.l EquipmentSRAM+$19 : AND.w #$00FF : BNE + - %fs_drawItemGray(3,26,FileSelectItems_fighters_sword) + %fs_drawItemGray(3,26,FileSelectItems_bombos) JMP ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_fighters_sword) + %fs_drawItem(3,26,FileSelectItems_bombos) JMP ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_master_sword) + %fs_drawItem(3,26,FileSelectItems_bombos) JMP ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_tempered_sword) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_gold_sword) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + ; a sword value above 4 is either corrupted or 0xFF (a.k.a. swordless) - %fs_drawItemGray(3,26,FileSelectItems_fighters_sword) + %fs_drawItemGray(3,26,FileSelectItems_bombos) .bombSword LDA.l $70038F : AND.w #$00FF : BNE + - %fs_drawItemGray(3,26,FileSelectItems_fighters_bombs) + %fs_drawItemGray(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_fighters_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_master_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_tempered_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_gold_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(3,26,FileSelectItems_extra_gold_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) BRA ++ + ; a bomb value above 5 is... who knows, let's just pretend it's 5 - %fs_drawItem(3,26,FileSelectItems_extra_gold_bombs) + %fs_drawItem(3,26,FileSelectItems_bombos) ++ ; Shield LDA.l EquipmentSRAM+$1A : AND.w #$00FF : BNE + - %fs_drawItemGray(5,26,FileSelectItems_fighters_shield) + %fs_drawItemGray(5,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(5,26,FileSelectItems_fighters_shield) + %fs_drawItem(5,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(5,26,FileSelectItems_fire_shield) + %fs_drawItem(5,26,FileSelectItems_bombos) BRA ++ + - %fs_drawItem(5,26,FileSelectItems_mirror_shield) + %fs_drawItem(5,26,FileSelectItems_bombos) ++ ; Mail LDA.l EquipmentSRAM+$1B : AND.w #$00FF : BNE + - %fs_drawItem(7,26,FileSelectItems_green_mail) + %fs_drawItem(7,26,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(7,26,FileSelectItems_blue_mail) + %fs_drawItem(7,26,FileSelectItems_bombos) BRA ++ + - %fs_drawItem(7,26,FileSelectItems_red_mail) + %fs_drawItem(7,26,FileSelectItems_bombos) ++ ; Heart Pieces @@ -356,24 +370,24 @@ DrawPlayerFileShared: LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(11,27) ; Boots - %fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_boots) + %fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_bombos) ; Gloves LDA.l EquipmentSRAM+$14 : AND.w #$00FF : BNE + - %fs_drawItemGray(5,28,FileSelectItems_gloves) + %fs_drawItemGray(5,28,FileSelectItems_bombos) BRA ++ + : DEC : BNE + - %fs_drawItem(5,28,FileSelectItems_gloves) + %fs_drawItem(5,28,FileSelectItems_bombos) BRA ++ + - %fs_drawItem(5,28,FileSelectItems_mitts) + %fs_drawItem(5,28,FileSelectItems_bombos) ++ ; Flippers - %fs_drawItemBasic(EquipmentSRAM+$16,7,28,FileSelectItems_flippers) + %fs_drawItemBasic(EquipmentSRAM+$16,7,28,FileSelectItems_bombos) ; Moon Pearl - %fs_drawItemBasic(EquipmentSRAM+$17,9,28,FileSelectItems_pearl) + %fs_drawItemBasic(EquipmentSRAM+$17,9,28,FileSelectItems_bombos) ; Pendants LDA EquipmentSRAM+$34 : AND.w #$0004 : BEQ + @@ -399,53 +413,53 @@ DrawPlayerFileShared: ; Crystals LDA EquipmentSRAM+$3A : AND.w #$0002 : BEQ + - LDA.w #$0297|!FS_COLOR_BLUE + %fs_draw_bombos_top(12,21,!FS_COLOR_YELLOW) BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(13,18) + %fs_draw_bombos_top(12,21,!FS_COLOR_GRAY) + ++ LDA EquipmentSRAM+$3A : AND.w #$0010 : BEQ + - LDA.w #$0297|!FS_COLOR_BLUE + LDA.w #$0207|!FS_COLOR_YELLOW BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(12,19) + LDA.w #$0207|!FS_COLOR_GRAY + ++ : %fs_draw8x16(13,19) LDA EquipmentSRAM+$3A : AND.w #$0040 : BEQ + - LDA.w #$0297|!FS_COLOR_BLUE + %fs_draw_bombos_right(13,20,!FS_COLOR_YELLOW) BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(13,20) + %fs_draw_bombos_right(13,20,!FS_COLOR_GRAY) + ++ LDA EquipmentSRAM+$3A : AND.w #$0020 : BEQ + - LDA.w #$0297|!FS_COLOR_BLUE + LDA.w #$0207|!FS_COLOR_YELLOW BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(12,21) + LDA.w #$0207|!FS_COLOR_GRAY + ++ : %fs_draw8x16(13,21) LDA EquipmentSRAM+$3A : AND.w #$0004 : BEQ + - LDA.w #$0297|!FS_COLOR_RED + %fs_draw_bombos_right(13,22,!FS_COLOR_RED) BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(13,22) + %fs_draw_bombos_right(13,22,!FS_COLOR_GRAY) + ++ LDA EquipmentSRAM+$3A : AND.w #$0001 : BEQ + - LDA.w #$0297|!FS_COLOR_RED + LDA.w #$0207|!FS_COLOR_RED BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(12,23) + LDA.w #$0207|!FS_COLOR_GRAY + ++ : %fs_draw8x16(13,23) LDA EquipmentSRAM+$3A : AND.w #$0008 : BEQ + - LDA.w #$0297|!FS_COLOR_BLUE + %fs_draw_bombos_right(13,24,!FS_COLOR_YELLOW) BRA ++ + - LDA.w #$0287|!FS_COLOR_GRAY - ++ : %fs_draw16x8(13,24) + %fs_draw_bombos_right(13,24,!FS_COLOR_GRAY) + ++ PLB : PLY : PLX @@ -514,13 +528,13 @@ FileSelectItems: dw #$0264|!FS_COLOR_RED, #$0265|!FS_COLOR_RED, #$0274|!FS_COLOR_RED, #$0275|!FS_COLOR_RED .no_pendant - dw #$0285|!FS_COLOR_GRAY, #$0286|!FS_COLOR_GRAY, #$02B2|!FS_COLOR_GRAY, #$0296|!FS_COLOR_GRAY + dw #$0207|!FS_COLOR_GRAY, #$0217|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_GRAY, #$0207|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP .green_pendant - dw #$0285|!FS_COLOR_GREEN, #$0286|!FS_COLOR_GREEN, #$0295|!FS_COLOR_GREEN, #$0296|!FS_COLOR_GREEN + dw #$0207|!FS_COLOR_GREEN, #$0217|!FS_COLOR_GREEN|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_GREEN, #$0207|!FS_COLOR_GREEN|!FS_HFLIP|!FS_VFLIP .blue_pendant - dw #$0285|!FS_COLOR_BLUE, #$0286|!FS_COLOR_BLUE, #$0295|!FS_COLOR_BLUE, #$0296|!FS_COLOR_BLUE + dw #$0207|!FS_COLOR_BLUE, #$0217|!FS_COLOR_BLUE|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_BLUE, #$0207|!FS_COLOR_BLUE|!FS_HFLIP|!FS_VFLIP .red_pendant - dw #$0285|!FS_COLOR_RED, #$0286|!FS_COLOR_RED, #$0295|!FS_COLOR_RED, #$0296|!FS_COLOR_RED + dw #$0207|!FS_COLOR_RED, #$0217|!FS_COLOR_RED|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_RED, #$0207|!FS_COLOR_RED|!FS_HFLIP|!FS_VFLIP .gloves dw #$024E|!FS_COLOR_BROWN, #$024F|!FS_COLOR_BROWN, #$025E|!FS_COLOR_BROWN, #$025F|!FS_COLOR_BROWN @@ -556,13 +570,13 @@ FileSelectItems: dw #$026F|!FS_COLOR_RED, #$026F|!FS_COLOR_RED|!FS_HFLIP, #$027F|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED .heart_piece_0_of_4 - dw #$0280|!FS_COLOR_RED, #$0280|!FS_COLOR_RED|!FS_HFLIP, #$0290|!FS_COLOR_RED, #$0290|!FS_COLOR_RED|!FS_HFLIP + dw #$0207|!FS_COLOR_GRAY, #$0217|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_GRAY, #$0207|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP .heart_piece_1_of_4 - dw #$0281|!FS_COLOR_RED, #$0280|!FS_COLOR_RED|!FS_HFLIP, #$0290|!FS_COLOR_RED, #$0290|!FS_COLOR_RED|!FS_HFLIP + dw #$0207|!FS_COLOR_YELLOW, #$0217|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_GRAY, #$0207|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP .heart_piece_2_of_4 - dw #$0281|!FS_COLOR_RED, #$0280|!FS_COLOR_RED|!FS_HFLIP, #$0291|!FS_COLOR_RED, #$0290|!FS_COLOR_RED|!FS_HFLIP + dw #$0207|!FS_COLOR_YELLOW, #$0217|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_GRAY, #$0207|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP .heart_piece_3_of_4 - dw #$0281|!FS_COLOR_RED, #$0281|!FS_COLOR_RED|!FS_HFLIP, #$0291|!FS_COLOR_RED, #$0290|!FS_COLOR_RED|!FS_HFLIP + dw #$0207|!FS_COLOR_YELLOW, #$0217|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_YELLOW, #$0207|!FS_COLOR_GRAY|!FS_HFLIP|!FS_VFLIP .empty_bottle dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0250|!FS_COLOR_BW, #$0251|!FS_COLOR_BW diff --git a/generate_bombos_table.rb b/generate_bombos_table.rb new file mode 100644 index 0000000..e25dbc3 --- /dev/null +++ b/generate_bombos_table.rb @@ -0,0 +1,51 @@ +def process_values(sprite, values) + ret = values.clone + case sprite + when 0x09, 0x53, 0x54, 0x88 # moldorm, armos knights, lanmola, mothula + ret[13] = 1 # bombos - 16 damage + when 0x83, 0x84, 0x91, 0xC3 # green and red eyegores, stalfos knight, gibo + ret[13] = 1 # bombos - 16 damage + when 0x8C, 0x92 # arrghus, helmasaur king + ret[13] = 2 # bombos - 64 damage + when 0xBD # vitreous big eye + ret[13] = 2 # bombos - 64 damage + when 0x8D, 0xBE, 0xA2 # arrghus puff, vitreous small eye, kholdstare puffs + ret[13] = 1 # bombos - 16 damage + when 0xCB, 0xCC, 0xCD # trinexx, firenexx, icenexx + ret[13] = 2 # bombos - 64 damage + when 0xD0 # lynel + ret[13] = 1 # bombos - 16 damage + end + return ret +end + +def split_value(byte) + return [byte >> 4, byte & 0x0F] +end + +def join_values(value1, value2) + return (value1 & 0x0F) << 4 | (value2 & 0x0F) +end + +File.open("damage_table.bin") do |input| + File.open("damage_table_bombos.bin", "w") do |output| + i_enum = input.each_byte + (0...0xD7).each do |sprite| + values = [] + (0...8).each do + values += split_value(i_enum.next) + end + v_enum = process_values(sprite, values).to_enum + (0...8).each do + output.putc(join_values(v_enum.next, v_enum.next)) + end + end + begin + while true + output.putc(i_enum.next) + end + rescue StopIteration + end + end +end + diff --git a/medallions.asm b/medallions.asm index c70a57c..375112a 100644 --- a/medallions.asm +++ b/medallions.asm @@ -40,8 +40,8 @@ TryOpenTRock: RTL ;-------------------------------------------------------------------------------- MedallionTrigger_Bombos: - STZ $50 ; stuff we wrote over - STZ $0FC1 + STZ $50 ; stuff we wrote over + STZ $0FC1 PHA LDA.l MireRequiredMedallion : BNE + diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index b9809a5..46aa0b1 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -543,60 +543,117 @@ DrawPendantCrystalDiagram: LDA PendantsField LSR : BCC + ; pendant of wisdom (red) - LDX.w #$252B + LDX.w #$247D STX.w $13B6 INX : STX.w $13B8 - INX : STX.w $13F6 - INX : STX.w $13F8 + LDX.w #$E47E + STX.w $13F6 + DEX : STX.w $13F8 + ; LDX.w #$252B + ; STX.w $13B6 + ; INX : STX.w $13B8 + ; INX : STX.w $13F6 + ; INX : STX.w $13F8 + LSR : BCC + ; pendant of power (blue) - LDX.w #$2D2B + LDX.w #$2C7D STX.w $13AE INX : STX.w $13B0 - INX : STX.w $13EE - INX : STX.w $13F0 + LDX.w #$EC7E + STX.w $13EE + DEX : STX.w $13F0 + ; LDX.w #$2D2B + ; STX.w $13AE + ; INX : STX.w $13B0 + ; INX : STX.w $13EE + ; INX : STX.w $13F0 + LSR : BCC + ; pendant of courage (green) - LDX.w #$3D2B + LDX.w #$3C7D STX.w $1332 INX : STX.w $1334 - INX : STX.w $1372 - INX : STX.w $1374 + LDX.w #$FC7E + STX.w $1372 + DEX : STX.w $1374 + ; LDX.w #$3D2B + ; STX.w $1332 + ; INX : STX.w $1334 + ; INX : STX.w $1372 + ; INX : STX.w $1374 + + ; ; crystals + ; LDA CrystalsField + ; LDX.w #$2D44 + ; LDY.w #$2D45 + + ; BIT.w #$0002 : BEQ + ; crystal 1 + ; STX.w $14AC + ; STY.w $14AE + ; + BIT.w #$0010 : BEQ + ; crystal 2 + ; STX.w $146E + ; STY.w $1470 + ; + BIT.w #$0040 : BEQ + ; crystal 3 + ; STX.w $14B0 + ; STY.w $14B2 + ; + BIT.w #$0020 : BEQ + ; crystal 4 + ; STX.w $1472 + ; STY.w $1474 + ; + BIT.w #$0008 : BEQ + ; crystal 7 + ; STX.w $14B8 + ; STY.w $14BA + ; + + + ; LDX.w #$2544 + ; LDY.w #$2545 + + ; BIT.w #$0004 : BEQ + ; crystal 5 + ; STX.w $14B4 + ; STY.w $14B6 + ; + BIT.w #$0001 : BEQ + ; crystal 6 + ; STX.w $1476 + ; STY.w $1478 + ; + + ; crystals LDA CrystalsField - LDX.w #$2D44 - LDY.w #$2D45 - BIT.w #$0002 : BEQ + ; crystal 1 - STX.w $14AC - STY.w $14AE + LDX.w #$287D + STX.w $1432 + LDX.w #$287E + STX.w $1434 + BIT.w #$0010 : BEQ + ; crystal 2 + LDX.w #$287D STX.w $146E - STY.w $1470 + LDX.w #$E87E + STX.w $14AE + BIT.w #$0040 : BEQ + ; crystal 3 + LDX.w #$287E + STX.w $1470 + LDX.w #$E87D STX.w $14B0 - STY.w $14B2 + BIT.w #$0020 : BEQ + ; crystal 4 + LDX.w #$287D STX.w $1472 - STY.w $1474 - + BIT.w #$0008 : BEQ + ; crystal 7 - STX.w $14B8 - STY.w $14BA - + - - LDX.w #$2544 - LDY.w #$2545 - - BIT.w #$0004 : BEQ + ; crystal 5 + LDX.w #$E87E + STX.w $14B2 + + BIT.w #$0004 : BEQ + ; crystal 5 + LDX.w #$247E + STX.w $1474 + LDX.w #$E47D STX.w $14B4 - STY.w $14B6 + BIT.w #$0001 : BEQ + ; crystal 6 + LDX.w #$247D STX.w $1476 - STY.w $1478 + LDX.w #$E47E + STX.w $14B6 + + BIT.w #$0008 : BEQ + ; crystal 7 + LDX.w #$287E + STX.w $1478 + LDX.w #$E87D + STX.w $14B8 + PLB : PLP diff --git a/stats/creditsnew.asm b/stats/creditsnew.asm index 27e5e67..edc3e04 100644 --- a/stats/creditsnew.asm +++ b/stats/creditsnew.asm @@ -11,51 +11,51 @@ db 2, 55, " " ; $238020 table "creditscharmapbighi.txt" FirstSwordStatsHi: -db 2, 55, "FIRST SWORD " ; $23803E +db 2, 55, "FIRST BOMBOS " ; $23803E table "creditscharmapbiglo.txt" FirstSwordStatsLo: -db 2, 55, "FIRST SWORD " ; $23805C +db 2, 55, "FIRST BOMBOS " ; $23805C table "creditscharmapbighi.txt" SwordlessKillsHi: -db 2, 55, "SWORDLESS /13" ; $23807A +db 2, 55, "BOMBOSLESS /13" ; $23807A table "creditscharmapbiglo.txt" SwordlessKillsLo: -db 2, 55, "SWORDLESS /13" ; $238098 +db 2, 55, "BOMBOSLESS /13" ; $238098 table "creditscharmapbighi.txt" FighterSwordKillsHi: -db 2, 55, "FIGHTER'S SWORD /13" ; $2380B6 +db 2, 55, "FIGHTER'S BOMBOS /13" ; $2380B6 table "creditscharmapbiglo.txt" FighterSwordKillsLo: -db 2, 55, "FIGHTER'S SWORD /13" ; $2380D4 +db 2, 55, "FIGHTER'S BOMBOS /13" ; $2380D4 table "creditscharmapbighi.txt" MasterSwordKillsHi: -db 2, 55, "MASTER SWORD /13" ; $2380F2 +db 2, 55, "MASTER BOMBOS /13" ; $2380F2 table "creditscharmapbiglo.txt" MasterSwordKillsLo: -db 2, 55, "MASTER SWORD /13" ; $238110 +db 2, 55, "MASTER BOMBOS /13" ; $238110 table "creditscharmapbighi.txt" TemperedSwordKillsHi: -db 2, 55, "TEMPERED SWORD /13" ; $23812E +db 2, 55, "TEMPERED BOMBOS /13" ; $23812E table "creditscharmapbiglo.txt" TemperedSwordKillsLo: -db 2, 55, "TEMPERED SWORD /13" ; $23814C +db 2, 55, "TEMPERED BOMBOS /13" ; $23814C table "creditscharmapbighi.txt" GoldSwordKillsHi: -db 2, 55, "GOLD SWORD /13" ; $23816A +db 2, 55, "GOLD BOMBOS /13" ; $23816A table "creditscharmapbiglo.txt" GoldSwordKillsLo: -db 2, 55, "GOLD SWORD /13" ; $238188 +db 2, 55, "GOLD BOMBOS /13" ; $238188 ;=================================================================================================== @@ -406,8 +406,6 @@ CreditsLineBlank: %blankline() -%emptyline() -%emptyline() %emptyline() %emptyline() @@ -596,10 +594,18 @@ CreditsLineBlank: %emptyline() %emptyline() %emptyline() -%emptyline() -%emptyline() -%emptyline() -%emptyline() + +%smallcredits("BOMBOS MOD BY KARAFRUIT", "yellow") + +%blankline() + +%smallcredits("CREATED FOR SAKURATSUBASA", "green") + +%blankline() +%blankline() + +%smallcredits("THANKS FOR PLAYING", "red") + %emptyline() %emptyline() %emptyline() @@ -645,15 +651,15 @@ endif %blankline() -%bigcreditsleft("PEGASUS BOOTS") +%bigcreditsleft("BOMBOS") %blankline() -%bigcreditsleft("FLUTE") +%bigcreditsleft("BOMBOS") %blankline() -%bigcreditsleft("MIRROR") +%bigcreditsleft("BOMBOS") %blankline() %blankline() @@ -703,11 +709,11 @@ endif %blankline() -%bigcreditsleft("BONKS") +%bigcreditsleft("BONKBOS") %blankline() -%bigcreditsleft("BOMBS PLACED") +%bigcreditsleft("BOMBOS PLACED") %blankline() @@ -719,7 +725,7 @@ endif %blankline() -%bigcreditsleft("FAERIE REVIVALS") +%bigcreditsleft("BOMBOS REVIVALS") %blankline() @@ -744,7 +750,7 @@ endif %emptyline() %emptyline() -%bigcreditsleft("COLLECTION RATE /216") +%bigcreditsleft("BOMBOS RATE /216") %blankline() diff --git a/swordswap.asm b/swordswap.asm index 07a43de..27831a8 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -65,7 +65,7 @@ LookupDamageLevel: CMP #$03 : BEQ .bomb_table CMP #$04 : BEQ .bomb_table CMP #$05 : BEQ .bomb_table - %LookupDamageSubclass(Damage_Table) : RTL + %LookupDamageSubclass(Damage_Table_Bombos) : RTL .bomb_table %LookupDamageSubclass(Damage_Table_Bombs) : RTL .pseudo_table