1 Commits

Author SHA1 Message Date
a5b068b15f Bombos-only stuffs? 2022-09-28 23:08:55 -07:00
9 changed files with 484 additions and 151 deletions

View File

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

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>)
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)
LDY.w #<screenrow>*$20+<screencol>*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

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
;--------------------------------------------------------------------------------
MedallionTrigger_Bombos:
STZ $50 ; stuff we wrote over
STZ $0FC1
STZ $50 ; stuff we wrote over
STZ $0FC1
PHA
LDA.l MireRequiredMedallion : BNE +

View File

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

View File

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

View File

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