Bombos-only stuffs?

This commit is contained in:
2022-09-28 23:08:55 -07:00
parent bfc361ad3e
commit a5b068b15f
9 changed files with 484 additions and 151 deletions

View File

@@ -259,8 +259,8 @@ incbin ice_palace_floor.bin
warnpc $31C801 warnpc $31C801
org $31C800 org $31C800
Damage_Table: Damage_Table_Bombos:
incbin damage_table.bin incbin damage_table_bombos.bin
warnpc $31D001 warnpc $31D001
org $31D000 org $31D000
@@ -733,3 +733,5 @@ Sprite_GetEmptyBottleIndex: ; this is totally in sprite_bees.asm
org $1EF4E7 org $1EF4E7
Sprite_PlayerCantPassThrough: Sprite_PlayerCantPassThrough:
;================================================================================ ;================================================================================
incsrc bombos_only.asm

203
bombos_only.asm Normal file
View File

@@ -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
; =============================================================================

BIN
damage_table_bombos.bin Normal file

Binary file not shown.

View File

@@ -35,6 +35,20 @@ macro fs_draw16x16(screenrow,screencol)
%fs_draw16x8(<screenrow>+1,<screencol>) %fs_draw16x8(<screenrow>+1,<screencol>)
endmacro endmacro
macro fs_draw_bombos_top(screenrow,screencol,color)
LDA.w #$0207|<color>
%fs_draw8x8(<screenrow>,<screencol>)
LDA.w #$0217|<color>|!FS_HFLIP|!FS_VFLIP
%fs_draw8x8(<screenrow>,<screencol>+1)
endmacro
macro fs_draw_bombos_right(screenrow,screencol,color)
LDA.w #$0217|<color>|!FS_HFLIP|!FS_VFLIP
%fs_draw8x8(<screenrow>,<screencol>)
LDA.w #$0207|<color>|!FS_HFLIP|!FS_VFLIP
%fs_draw8x8(<screenrow>+1,<screencol>)
endmacro
macro fs_LDY_screenpos(screenrow,screencol) macro fs_LDY_screenpos(screenrow,screencol)
LDY.w #<screenrow>*$20+<screencol>*2+$1004 LDY.w #<screenrow>*$20+<screencol>*2+$1004
endmacro endmacro
@@ -83,28 +97,28 @@ JMP DrawItemGray
DrawBottle: DrawBottle:
AND.w #$00FF : BNE + AND.w #$00FF : BNE +
LDX #FileSelectItems_empty_bottle LDX #FileSelectItems_bombos
JMP DrawItemGray JMP DrawItemGray
+ : DEC #2 : BNE + + : DEC #2 : BNE +
LDX #FileSelectItems_empty_bottle LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
LDX #FileSelectItems_red_potion LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
LDX #FileSelectItems_green_potion LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
LDX #FileSelectItems_blue_potion LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
LDX #FileSelectItems_fairy_bottle LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
LDX #FileSelectItems_bee_bottle LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
+ +
LDX #FileSelectItems_good_bee_bottle LDX #FileSelectItems_bombos
JMP DrawItem JMP DrawItem
@@ -155,111 +169,111 @@ DrawPlayerFileShared:
; Bow ; Bow
LDA.l BowTrackingSRAM : AND.w #$0040 : BEQ + LDA.l BowTrackingSRAM : AND.w #$0040 : BEQ +
LDA EquipmentSRAM+$00 : AND.w #$00FF : BEQ ++ LDA EquipmentSRAM+$00 : AND.w #$00FF : BEQ ++
%fs_drawItem(3,12,FileSelectItems_silver_bow) %fs_drawItem(3,12,FileSelectItems_bombos)
BRA .bow_end BRA .bow_end
++ ++
%fs_drawItem(3,12,FileSelectItems_silver_arrow) %fs_drawItem(3,12,FileSelectItems_bombos)
BRA .bow_end BRA .bow_end
+ +
LDA.l EquipmentSRAM : AND.w #$00FF : BEQ + LDA.l EquipmentSRAM : AND.w #$00FF : BEQ +
%fs_drawItem(3,12,FileSelectItems_bow) %fs_drawItem(3,12,FileSelectItems_bombos)
BRA .bow_end BRA .bow_end
+ +
%fs_drawItemGray(3,12,FileSelectItems_bow) %fs_drawItemGray(3,12,FileSelectItems_bombos)
.bow_end .bow_end
; Boomerang ; Boomerang
LDA.l InventoryTrackingSRAM : AND.w #$00C0 : CMP.w #$00C0 : BNE + 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 BRA .boomerang_end
+ +
LDA.l InventoryTrackingSRAM : AND.w #$0040 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0040 : BEQ +
%fs_drawItem(3,14,FileSelectItems_red_boomerang) %fs_drawItem(3,14,FileSelectItems_bombos)
BRA .boomerang_end BRA .boomerang_end
+ +
LDA.l InventoryTrackingSRAM : AND.w #$0080 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0080 : BEQ +
%fs_drawItem(3,14,FileSelectItems_blue_boomerang) %fs_drawItem(3,14,FileSelectItems_bombos)
BRA .boomerang_end BRA .boomerang_end
+ +
%fs_drawItemGray(3,14,FileSelectItems_blue_boomerang) %fs_drawItemGray(3,14,FileSelectItems_bombos)
.boomerang_end .boomerang_end
; Hookshot ; Hookshot
%fs_drawItemBasic(EquipmentSRAM+$02,3,16,FileSelectItems_hookshot) %fs_drawItemBasic(EquipmentSRAM+$02,3,16,FileSelectItems_bombos)
; Bombs ; Bombs
; %fs_drawItemBasic(EquipmentSRAM+$03,3,18,FileSelectItems_bombs) ; %fs_drawItemBasic(EquipmentSRAM+$03,3,18,FileSelectItems_bombos)
; Powder ; Powder
LDA.l InventoryTrackingSRAM : AND.w #$0010 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0010 : BEQ +
%fs_drawItem(3,20,FileSelectItems_powder) %fs_drawItem(3,20,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItemGray(3,20,FileSelectItems_powder) %fs_drawItemGray(3,20,FileSelectItems_bombos)
++ ++
; Mushroom ; Mushroom
LDA.l InventoryTrackingSRAM : AND.w #$0008 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0008 : BEQ +
%fs_drawItem(3,18,FileSelectItems_mushroom) %fs_drawItem(3,18,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItemGray(3,18,FileSelectItems_mushroom) %fs_drawItemGray(3,18,FileSelectItems_bombos)
++ ++
; Flute ; Flute
LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ +
%fs_drawItem(7,16,FileSelectItems_flute) %fs_drawItem(7,16,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItemGray(7,16,FileSelectItems_flute) %fs_drawItemGray(7,16,FileSelectItems_bombos)
++ ++
; Shovel ; Shovel
LDA.l InventoryTrackingSRAM : AND.w #$0004 : BEQ + LDA.l InventoryTrackingSRAM : AND.w #$0004 : BEQ +
%fs_drawItem(9,12,FileSelectItems_shovel) %fs_drawItem(9,12,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItemGray(9,12,FileSelectItems_shovel) %fs_drawItemGray(9,12,FileSelectItems_bombos)
++ ++
; Fire Rod ; Fire Rod
%fs_drawItemBasic(EquipmentSRAM+$05,5,12,FileSelectItems_fire_rod) %fs_drawItemBasic(EquipmentSRAM+$05,5,12,FileSelectItems_bombos)
; Ice Rod ; Ice Rod
%fs_drawItemBasic(EquipmentSRAM+$06,5,14,FileSelectItems_ice_rod) %fs_drawItemBasic(EquipmentSRAM+$06,5,14,FileSelectItems_bombos)
; Bombos Medallion ; Bombos Medallion
%fs_drawItemBasic(EquipmentSRAM+$07,5,16,FileSelectItems_bombos) %fs_drawItemBasic(EquipmentSRAM+$07,5,16,FileSelectItems_bombos)
; Ether Medallion ; Ether Medallion
%fs_drawItemBasic(EquipmentSRAM+$08,5,18,FileSelectItems_ether) %fs_drawItemBasic(EquipmentSRAM+$08,5,18,FileSelectItems_bombos)
; Quake Medallion ; Quake Medallion
%fs_drawItemBasic(EquipmentSRAM+$09,5,20,FileSelectItems_quake) %fs_drawItemBasic(EquipmentSRAM+$09,5,20,FileSelectItems_bombos)
; Lamp ; Lamp
%fs_drawItemBasic(EquipmentSRAM+$0A,7,12,FileSelectItems_lamp) %fs_drawItemBasic(EquipmentSRAM+$0A,7,12,FileSelectItems_bombos)
; Hammer ; Hammer
%fs_drawItemBasic(EquipmentSRAM+$0B,7,14,FileSelectItems_hammer) %fs_drawItemBasic(EquipmentSRAM+$0B,7,14,FileSelectItems_bombos)
; Bug Net ; Bug Net
%fs_drawItemBasic(EquipmentSRAM+$0D,7,18,FileSelectItems_bugnet) %fs_drawItemBasic(EquipmentSRAM+$0D,7,18,FileSelectItems_bombos)
; Book of Mudora ; Book of Mudora
%fs_drawItemBasic(EquipmentSRAM+$0E,7,20,FileSelectItems_book) %fs_drawItemBasic(EquipmentSRAM+$0E,7,20,FileSelectItems_bombos)
; Red Cane ; Red Cane
%fs_drawItemBasic(EquipmentSRAM+$10,9,14,FileSelectItems_redcane) %fs_drawItemBasic(EquipmentSRAM+$10,9,14,FileSelectItems_bombos)
; Blue Cane ; Blue Cane
%fs_drawItemBasic(EquipmentSRAM+$11,9,16,FileSelectItems_bluecane) %fs_drawItemBasic(EquipmentSRAM+$11,9,16,FileSelectItems_bombos)
; Cape ; Cape
%fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_cape) %fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_bombos)
; Mirror ; Mirror
%fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_mirror) %fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_bombos)
; Bottles ; Bottles
%fs_drawBottle(EquipmentSRAM+$1C,3,23) %fs_drawBottle(EquipmentSRAM+$1C,3,23)
@@ -270,70 +284,70 @@ DrawPlayerFileShared:
; Sword ; Sword
LDA.l SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .bombSword LDA.l SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .bombSword
LDA.l EquipmentSRAM+$19 : AND.w #$00FF : BNE + LDA.l EquipmentSRAM+$19 : AND.w #$00FF : BNE +
%fs_drawItemGray(3,26,FileSelectItems_fighters_sword) %fs_drawItemGray(3,26,FileSelectItems_bombos)
JMP ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_fighters_sword) %fs_drawItem(3,26,FileSelectItems_bombos)
JMP ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_master_sword) %fs_drawItem(3,26,FileSelectItems_bombos)
JMP ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_tempered_sword) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_gold_sword) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
; a sword value above 4 is either corrupted or 0xFF (a.k.a. swordless) ; 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 .bombSword
LDA.l $70038F : AND.w #$00FF : BNE + LDA.l $70038F : AND.w #$00FF : BNE +
%fs_drawItemGray(3,26,FileSelectItems_fighters_bombs) %fs_drawItemGray(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_fighters_bombs) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_master_bombs) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_tempered_bombs) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_gold_bombs) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_extra_gold_bombs) %fs_drawItem(3,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
; a bomb value above 5 is... who knows, let's just pretend it's 5 ; 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 ; Shield
LDA.l EquipmentSRAM+$1A : AND.w #$00FF : BNE + LDA.l EquipmentSRAM+$1A : AND.w #$00FF : BNE +
%fs_drawItemGray(5,26,FileSelectItems_fighters_shield) %fs_drawItemGray(5,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(5,26,FileSelectItems_fighters_shield) %fs_drawItem(5,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(5,26,FileSelectItems_fire_shield) %fs_drawItem(5,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItem(5,26,FileSelectItems_mirror_shield) %fs_drawItem(5,26,FileSelectItems_bombos)
++ ++
; Mail ; Mail
LDA.l EquipmentSRAM+$1B : AND.w #$00FF : BNE + LDA.l EquipmentSRAM+$1B : AND.w #$00FF : BNE +
%fs_drawItem(7,26,FileSelectItems_green_mail) %fs_drawItem(7,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(7,26,FileSelectItems_blue_mail) %fs_drawItem(7,26,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItem(7,26,FileSelectItems_red_mail) %fs_drawItem(7,26,FileSelectItems_bombos)
++ ++
; Heart Pieces ; Heart Pieces
@@ -356,24 +370,24 @@ DrawPlayerFileShared:
LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(11,27) LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(11,27)
; Boots ; Boots
%fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_boots) %fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_bombos)
; Gloves ; Gloves
LDA.l EquipmentSRAM+$14 : AND.w #$00FF : BNE + LDA.l EquipmentSRAM+$14 : AND.w #$00FF : BNE +
%fs_drawItemGray(5,28,FileSelectItems_gloves) %fs_drawItemGray(5,28,FileSelectItems_bombos)
BRA ++ BRA ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(5,28,FileSelectItems_gloves) %fs_drawItem(5,28,FileSelectItems_bombos)
BRA ++ BRA ++
+ +
%fs_drawItem(5,28,FileSelectItems_mitts) %fs_drawItem(5,28,FileSelectItems_bombos)
++ ++
; Flippers ; Flippers
%fs_drawItemBasic(EquipmentSRAM+$16,7,28,FileSelectItems_flippers) %fs_drawItemBasic(EquipmentSRAM+$16,7,28,FileSelectItems_bombos)
; Moon Pearl ; Moon Pearl
%fs_drawItemBasic(EquipmentSRAM+$17,9,28,FileSelectItems_pearl) %fs_drawItemBasic(EquipmentSRAM+$17,9,28,FileSelectItems_bombos)
; Pendants ; Pendants
LDA EquipmentSRAM+$34 : AND.w #$0004 : BEQ + LDA EquipmentSRAM+$34 : AND.w #$0004 : BEQ +
@@ -399,53 +413,53 @@ DrawPlayerFileShared:
; Crystals ; Crystals
LDA EquipmentSRAM+$3A : AND.w #$0002 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0002 : BEQ +
LDA.w #$0297|!FS_COLOR_BLUE %fs_draw_bombos_top(12,21,!FS_COLOR_YELLOW)
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY %fs_draw_bombos_top(12,21,!FS_COLOR_GRAY)
++ : %fs_draw16x8(13,18) ++
LDA EquipmentSRAM+$3A : AND.w #$0010 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0010 : BEQ +
LDA.w #$0297|!FS_COLOR_BLUE LDA.w #$0207|!FS_COLOR_YELLOW
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY LDA.w #$0207|!FS_COLOR_GRAY
++ : %fs_draw16x8(12,19) ++ : %fs_draw8x16(13,19)
LDA EquipmentSRAM+$3A : AND.w #$0040 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0040 : BEQ +
LDA.w #$0297|!FS_COLOR_BLUE %fs_draw_bombos_right(13,20,!FS_COLOR_YELLOW)
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY %fs_draw_bombos_right(13,20,!FS_COLOR_GRAY)
++ : %fs_draw16x8(13,20) ++
LDA EquipmentSRAM+$3A : AND.w #$0020 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0020 : BEQ +
LDA.w #$0297|!FS_COLOR_BLUE LDA.w #$0207|!FS_COLOR_YELLOW
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY LDA.w #$0207|!FS_COLOR_GRAY
++ : %fs_draw16x8(12,21) ++ : %fs_draw8x16(13,21)
LDA EquipmentSRAM+$3A : AND.w #$0004 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0004 : BEQ +
LDA.w #$0297|!FS_COLOR_RED %fs_draw_bombos_right(13,22,!FS_COLOR_RED)
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY %fs_draw_bombos_right(13,22,!FS_COLOR_GRAY)
++ : %fs_draw16x8(13,22) ++
LDA EquipmentSRAM+$3A : AND.w #$0001 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0001 : BEQ +
LDA.w #$0297|!FS_COLOR_RED LDA.w #$0207|!FS_COLOR_RED
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY LDA.w #$0207|!FS_COLOR_GRAY
++ : %fs_draw16x8(12,23) ++ : %fs_draw8x16(13,23)
LDA EquipmentSRAM+$3A : AND.w #$0008 : BEQ + LDA EquipmentSRAM+$3A : AND.w #$0008 : BEQ +
LDA.w #$0297|!FS_COLOR_BLUE %fs_draw_bombos_right(13,24,!FS_COLOR_YELLOW)
BRA ++ BRA ++
+ +
LDA.w #$0287|!FS_COLOR_GRAY %fs_draw_bombos_right(13,24,!FS_COLOR_GRAY)
++ : %fs_draw16x8(13,24) ++
PLB : PLY : PLX 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 dw #$0264|!FS_COLOR_RED, #$0265|!FS_COLOR_RED, #$0274|!FS_COLOR_RED, #$0275|!FS_COLOR_RED
.no_pendant .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 .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 .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 .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 .gloves
dw #$024E|!FS_COLOR_BROWN, #$024F|!FS_COLOR_BROWN, #$025E|!FS_COLOR_BROWN, #$025F|!FS_COLOR_BROWN 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 dw #$026F|!FS_COLOR_RED, #$026F|!FS_COLOR_RED|!FS_HFLIP, #$027F|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED
.heart_piece_0_of_4 .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 .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 .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 .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 .empty_bottle
dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0250|!FS_COLOR_BW, #$0251|!FS_COLOR_BW dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0250|!FS_COLOR_BW, #$0251|!FS_COLOR_BW

51
generate_bombos_table.rb Normal file
View File

@@ -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

View File

@@ -40,8 +40,8 @@ TryOpenTRock:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
MedallionTrigger_Bombos: MedallionTrigger_Bombos:
STZ $50 ; stuff we wrote over STZ $50 ; stuff we wrote over
STZ $0FC1 STZ $0FC1
PHA PHA
LDA.l MireRequiredMedallion : BNE + LDA.l MireRequiredMedallion : BNE +

View File

@@ -543,60 +543,117 @@ DrawPendantCrystalDiagram:
LDA PendantsField LDA PendantsField
LSR : BCC + ; pendant of wisdom (red) LSR : BCC + ; pendant of wisdom (red)
LDX.w #$252B LDX.w #$247D
STX.w $13B6 STX.w $13B6
INX : STX.w $13B8 INX : STX.w $13B8
INX : STX.w $13F6 LDX.w #$E47E
INX : STX.w $13F8 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) + LSR : BCC + ; pendant of power (blue)
LDX.w #$2D2B LDX.w #$2C7D
STX.w $13AE STX.w $13AE
INX : STX.w $13B0 INX : STX.w $13B0
INX : STX.w $13EE LDX.w #$EC7E
INX : STX.w $13F0 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) + LSR : BCC + ; pendant of courage (green)
LDX.w #$3D2B LDX.w #$3C7D
STX.w $1332 STX.w $1332
INX : STX.w $1334 INX : STX.w $1334
INX : STX.w $1372 LDX.w #$FC7E
INX : STX.w $1374 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 ; crystals
LDA CrystalsField LDA CrystalsField
LDX.w #$2D44
LDY.w #$2D45
BIT.w #$0002 : BEQ + ; crystal 1 BIT.w #$0002 : BEQ + ; crystal 1
STX.w $14AC LDX.w #$287D
STY.w $14AE STX.w $1432
LDX.w #$287E
STX.w $1434
+ BIT.w #$0010 : BEQ + ; crystal 2 + BIT.w #$0010 : BEQ + ; crystal 2
LDX.w #$287D
STX.w $146E STX.w $146E
STY.w $1470 LDX.w #$E87E
STX.w $14AE
+ BIT.w #$0040 : BEQ + ; crystal 3 + BIT.w #$0040 : BEQ + ; crystal 3
LDX.w #$287E
STX.w $1470
LDX.w #$E87D
STX.w $14B0 STX.w $14B0
STY.w $14B2
+ BIT.w #$0020 : BEQ + ; crystal 4 + BIT.w #$0020 : BEQ + ; crystal 4
LDX.w #$287D
STX.w $1472 STX.w $1472
STY.w $1474 LDX.w #$E87E
+ BIT.w #$0008 : BEQ + ; crystal 7 STX.w $14B2
STX.w $14B8 + BIT.w #$0004 : BEQ + ; crystal 5
STY.w $14BA LDX.w #$247E
+ STX.w $1474
LDX.w #$E47D
LDX.w #$2544
LDY.w #$2545
BIT.w #$0004 : BEQ + ; crystal 5
STX.w $14B4 STX.w $14B4
STY.w $14B6
+ BIT.w #$0001 : BEQ + ; crystal 6 + BIT.w #$0001 : BEQ + ; crystal 6
LDX.w #$247D
STX.w $1476 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 PLB : PLP

View File

@@ -11,51 +11,51 @@ db 2, 55, " " ; $238020
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
FirstSwordStatsHi: FirstSwordStatsHi:
db 2, 55, "FIRST SWORD " ; $23803E db 2, 55, "FIRST BOMBOS " ; $23803E
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
FirstSwordStatsLo: FirstSwordStatsLo:
db 2, 55, "FIRST SWORD " ; $23805C db 2, 55, "FIRST BOMBOS " ; $23805C
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
SwordlessKillsHi: SwordlessKillsHi:
db 2, 55, "SWORDLESS /13" ; $23807A db 2, 55, "BOMBOSLESS /13" ; $23807A
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
SwordlessKillsLo: SwordlessKillsLo:
db 2, 55, "SWORDLESS /13" ; $238098 db 2, 55, "BOMBOSLESS /13" ; $238098
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
FighterSwordKillsHi: FighterSwordKillsHi:
db 2, 55, "FIGHTER'S SWORD /13" ; $2380B6 db 2, 55, "FIGHTER'S BOMBOS /13" ; $2380B6
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
FighterSwordKillsLo: FighterSwordKillsLo:
db 2, 55, "FIGHTER'S SWORD /13" ; $2380D4 db 2, 55, "FIGHTER'S BOMBOS /13" ; $2380D4
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
MasterSwordKillsHi: MasterSwordKillsHi:
db 2, 55, "MASTER SWORD /13" ; $2380F2 db 2, 55, "MASTER BOMBOS /13" ; $2380F2
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
MasterSwordKillsLo: MasterSwordKillsLo:
db 2, 55, "MASTER SWORD /13" ; $238110 db 2, 55, "MASTER BOMBOS /13" ; $238110
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
TemperedSwordKillsHi: TemperedSwordKillsHi:
db 2, 55, "TEMPERED SWORD /13" ; $23812E db 2, 55, "TEMPERED BOMBOS /13" ; $23812E
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
TemperedSwordKillsLo: TemperedSwordKillsLo:
db 2, 55, "TEMPERED SWORD /13" ; $23814C db 2, 55, "TEMPERED BOMBOS /13" ; $23814C
table "creditscharmapbighi.txt" table "creditscharmapbighi.txt"
GoldSwordKillsHi: GoldSwordKillsHi:
db 2, 55, "GOLD SWORD /13" ; $23816A db 2, 55, "GOLD BOMBOS /13" ; $23816A
table "creditscharmapbiglo.txt" table "creditscharmapbiglo.txt"
GoldSwordKillsLo: GoldSwordKillsLo:
db 2, 55, "GOLD SWORD /13" ; $238188 db 2, 55, "GOLD BOMBOS /13" ; $238188
;=================================================================================================== ;===================================================================================================
@@ -406,8 +406,6 @@ CreditsLineBlank:
%blankline() %blankline()
%emptyline()
%emptyline()
%emptyline() %emptyline()
%emptyline() %emptyline()
@@ -596,10 +594,18 @@ CreditsLineBlank:
%emptyline() %emptyline()
%emptyline() %emptyline()
%emptyline() %emptyline()
%emptyline()
%emptyline() %smallcredits("BOMBOS MOD BY KARAFRUIT", "yellow")
%emptyline()
%emptyline() %blankline()
%smallcredits("CREATED FOR SAKURATSUBASA", "green")
%blankline()
%blankline()
%smallcredits("THANKS FOR PLAYING", "red")
%emptyline() %emptyline()
%emptyline() %emptyline()
%emptyline() %emptyline()
@@ -645,15 +651,15 @@ endif
%blankline() %blankline()
%bigcreditsleft("PEGASUS BOOTS") %bigcreditsleft("BOMBOS")
%blankline() %blankline()
%bigcreditsleft("FLUTE") %bigcreditsleft("BOMBOS")
%blankline() %blankline()
%bigcreditsleft("MIRROR") %bigcreditsleft("BOMBOS")
%blankline() %blankline()
%blankline() %blankline()
@@ -703,11 +709,11 @@ endif
%blankline() %blankline()
%bigcreditsleft("BONKS") %bigcreditsleft("BONKBOS")
%blankline() %blankline()
%bigcreditsleft("BOMBS PLACED") %bigcreditsleft("BOMBOS PLACED")
%blankline() %blankline()
@@ -719,7 +725,7 @@ endif
%blankline() %blankline()
%bigcreditsleft("FAERIE REVIVALS") %bigcreditsleft("BOMBOS REVIVALS")
%blankline() %blankline()
@@ -744,7 +750,7 @@ endif
%emptyline() %emptyline()
%emptyline() %emptyline()
%bigcreditsleft("COLLECTION RATE /216") %bigcreditsleft("BOMBOS RATE /216")
%blankline() %blankline()

View File

@@ -65,7 +65,7 @@ LookupDamageLevel:
CMP #$03 : BEQ .bomb_table CMP #$03 : BEQ .bomb_table
CMP #$04 : BEQ .bomb_table CMP #$04 : BEQ .bomb_table
CMP #$05 : BEQ .bomb_table CMP #$05 : BEQ .bomb_table
%LookupDamageSubclass(Damage_Table) : RTL %LookupDamageSubclass(Damage_Table_Bombos) : RTL
.bomb_table .bomb_table
%LookupDamageSubclass(Damage_Table_Bombs) : RTL %LookupDamageSubclass(Damage_Table_Bombs) : RTL
.pseudo_table .pseudo_table