10 Commits
Author SHA1 Message Date
karafruit 5e892ca283 Fix orange potion overwrite 2026-06-15 16:58:18 -05:00
karafruit bf2b0fc6c8 Remove backup file accidentally created 2026-06-09 10:32:30 -05:00
karafruit 84a5fd3969 Merge branch 'beta' 2026-06-09 10:31:48 -05:00
karafruit 1092f1bc85 Text updates and orange refill box 2026-06-08 22:57:41 -05:00
karafruit fa33a3d24b Fix max frame count 2026-06-08 16:11:28 -05:00
karafruit 7d3a3a54e3 Fix max frame count 2026-06-08 16:10:55 -05:00
karafruit 99d426bc1e Bitflag to block silverless damage on phase 4 ganon 2026-06-08 00:11:01 -05:00
karafruit 82ce1628e6 Make infinite magic bar blue instead of flashy 2026-06-07 21:43:56 -05:00
karafruit 43515851c1 orange potion 2026-06-07 21:35:34 -05:00
karafruit d7ff034884 Unmark MapSwapping as NYI 2026-06-07 13:46:23 -05:00
26 changed files with 147 additions and 65 deletions
+1
View File
@@ -206,6 +206,7 @@ warnpc $A38000
org $B98000 org $B98000
incsrc gk/crystalswitchbook.asm incsrc gk/crystalswitchbook.asm
incsrc gk/orange_potion.asm
incsrc gk/mimicdash.asm incsrc gk/mimicdash.asm
incsrc gk/gloom.asm incsrc gk/gloom.asm
incsrc gk/special_weapons.asm incsrc gk/special_weapons.asm
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+5 -1
View File
@@ -252,10 +252,14 @@ RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DialogItemReceive: DialogItemReceive:
BCS .nomessage ; if doubling the item value overflowed it must be a rando item BCS .nomessage ; if doubling the item value overflowed it must be a rando item
CPY.b #$CC : BEQ .orange_potion
CPY.b #$98 : BCC ++ ;if the item is $4C or greater it must be a rando item CPY.b #$98 : BCC ++ ;if the item is $4C or greater it must be a rando item
.nomessage .nomessage
LDA.w #$FFFF LDA.w #$FFFF
BRA .done
.orange_potion
LDA.w #$0198
BRA .done BRA .done
++ LDA.w Ancilla_ReceiveItem_item_messages, Y ++ LDA.w Ancilla_ReceiveItem_item_messages, Y
@@ -304,7 +308,7 @@ DialogGanon2:
BCS + BCS +
LDA.w #$018D : JMP .done LDA.w #$018D : JMP .done
+ +
LDA.l GanonVulnerabilityItem : AND.w #$00FF LDA.l GanonVulnerabilityItem : AND.w #$007F
BEQ .silver_arrows BEQ .silver_arrows
CMP.w #$0001 : BEQ .silver_arrows CMP.w #$0001 : BEQ .silver_arrows
CMP.w #$0004 : BEQ .bombs CMP.w #$0004 : BEQ .bombs
+4
View File
@@ -41,6 +41,8 @@ OnPlayerDead:
JSL DynamicDropGFXClear JSL DynamicDropGFXClear
JSL SetSilverBowMode JSL SetSilverBowMode
JSL RefreshRainAmmo JSL RefreshRainAmmo
LDA.b #$00
STA.l InfiniteMagic
PLA PLA
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -70,6 +72,8 @@ OnQuit:
JSL SQEGFix JSL SQEGFix
LDA.b #$00 : STA.l AltTextFlag ; bandaid patch bug with mirroring away from text LDA.b #$00 : STA.l AltTextFlag ; bandaid patch bug with mirroring away from text
LDA.b #$10 : STA.b MAINDESQ ; thing we wrote over LDA.b #$10 : STA.b MAINDESQ ; thing we wrote over
LDA.b #$00
STA.l InfiniteMagic
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
OnDeathNoSave: OnDeathNoSave:
+6 -1
View File
@@ -82,7 +82,10 @@ DrawBottle:
AND.w #$00FF : BNE + AND.w #$00FF : BNE +
LDX.w #FileSelectItems_empty_bottle LDX.w #FileSelectItems_empty_bottle
JMP DrawItemGray JMP DrawItemGray
+ : DEC #2 : BNE + + : DEC : BNE +
LDX.w #FileSelectItems_orange_potion
JMP DrawItem
+ : DEC : BNE +
LDX.w #FileSelectItems_empty_bottle LDX.w #FileSelectItems_empty_bottle
JMP DrawItem JMP DrawItem
+ : DEC : BNE + + : DEC : BNE +
@@ -619,6 +622,8 @@ FileSelectItems:
dw #$0282|!FS_COLOR_GREEN, #$0282|!FS_COLOR_GREEN|!FS_HFLIP, #$0292|!FS_COLOR_GREEN, #$0284|!FS_COLOR_GREEN dw #$0282|!FS_COLOR_GREEN, #$0282|!FS_COLOR_GREEN|!FS_HFLIP, #$0292|!FS_COLOR_GREEN, #$0284|!FS_COLOR_GREEN
.blue_potion .blue_potion
dw #$0282|!FS_COLOR_BLUE, #$0282|!FS_COLOR_BLUE|!FS_HFLIP, #$0292|!FS_COLOR_BLUE, #$0285|!FS_COLOR_BLUE dw #$0282|!FS_COLOR_BLUE, #$0282|!FS_COLOR_BLUE|!FS_HFLIP, #$0292|!FS_COLOR_BLUE, #$0285|!FS_COLOR_BLUE
.orange_potion
dw #$0282|!FS_COLOR_BROWN, #$0282|!FS_COLOR_BROWN|!FS_HFLIP, #$0292|!FS_COLOR_BROWN, #$0286|!FS_COLOR_BROWN
.fairy_bottle .fairy_bottle
dw #$0287|!FS_COLOR_YELLOW|!FS_HFLIP, #$0287|!FS_COLOR_YELLOW, #$0296|!FS_COLOR_BLUE, #$0297|!FS_COLOR_BLUE dw #$0287|!FS_COLOR_YELLOW|!FS_HFLIP, #$0287|!FS_COLOR_YELLOW, #$0296|!FS_COLOR_BLUE, #$0297|!FS_COLOR_BLUE
.bee_bottle .bee_bottle
+1 -1
View File
@@ -116,7 +116,7 @@ db !TIER_JUNK ; 62 - RNG pool item (single)
db !TIER_JUNK ; 63 - RNG pool item (multi) db !TIER_JUNK ; 63 - RNG pool item (multi)
db !TIER_MAJOR ; 64 - Progressive bow db !TIER_MAJOR ; 64 - Progressive bow
db !TIER_MAJOR ; 65 - Progressive bow db !TIER_MAJOR ; 65 - Progressive bow
db !TIER_JUNK ; 66 - db !TIER_HEALTH ; 66 - Potion refill (orange)
db !TIER_JUNK ; 67 - db !TIER_JUNK ; 67 -
db !TIER_JUNK ; 68 - db !TIER_JUNK ; 68 -
db !TIER_JUNK ; 69 - db !TIER_JUNK ; 69 -
+1 -1
View File
@@ -101,7 +101,7 @@ db $00 ; 62 - RNG pool item (single)
db $00 ; 63 - RNG pool item (multi) db $00 ; 63 - RNG pool item (multi)
db $00 ; 64 - Progressive bow db $00 ; 64 - Progressive bow
db $00 ; 65 - Progressive bow db $00 ; 65 - Progressive bow
db $00 ; 66 - db $00 ; 66 - Potion refill (orange)
db $00 ; 67 - db $00 ; 67 -
db $00 ; 68 - db $00 ; 68 -
db $00 ; 69 - db $00 ; 69 -
+31
View File
@@ -0,0 +1,31 @@
CheckOrangePotion:
LDA.l BottleContents, X
CMP.b #$01
BEQ .orange
; return to vanilla behavior
CMP.b #$00
RTL
.orange
LDA.l InfiniteMagic
BNE .nope
LDA.b #$02
STA.l BottleContents, X
STZ.w $0301
LDA.b #$01
STA.l InfiniteMagic
JSL RebuildHUD_update_long
LDA.b #$00
RTL
.nope
JSL Sound_SetSfxPanWithPlayerCoords
ORA.b #$3C
STA.w SFX2
LDA.b #$00
RTL
+1 -1
View File
@@ -269,4 +269,4 @@ ItemSources:
; m - have map ; m - have map
; v - have visited dungeon ; v - have visited dungeon
MapSwapping: MapSwapping:
db $01 ; NYI db $01
+1 -1
View File
@@ -1,6 +1,6 @@
DamageClassCalc: DamageClassCalc:
PHA PHA
LDA.l GanonVulnerabilityItem : BEQ + LDA.l GanonVulnerabilityItem : AND.b #$7F : BEQ +
LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE + LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE +
PLA PLA
JSL Ganon_CheckAncillaVulnerability JSL Ganon_CheckAncillaVulnerability
+9 -6
View File
@@ -4,12 +4,14 @@ Ganon_CheckAncillaVulnerability:
PLA PLA
PHX : PHA PHX : PHA
LDA.l GanonVulnerabilityItem LDA.l GanonVulnerabilityItem
BMI .no_weakness BVS .no_weakness
AND.b #$7F
TAX : PLA TAX : PLA
CMP.l Ganon_CheckByAncilla, X : BNE + CMP.l Ganon_CheckByAncilla, X : BNE +
PLX : BRA .vulnerable PLX : BRA .vulnerable
+ PLX : PHA + PLX : PHA
LDA.l GanonVulnerabilityItem LDA.l GanonVulnerabilityItem
AND.b #$7F
BEQ .silver_arrows BEQ .silver_arrows
CMP.b #$01 : BEQ .silver_arrows CMP.b #$01 : BEQ .silver_arrows
CMP.b #$11 : BEQ .somaria CMP.b #$11 : BEQ .somaria
@@ -34,6 +36,7 @@ Ganon_CheckAncillaVulnerability:
.vulnerable .vulnerable
PHX PHX
LDA.l GanonVulnerabilityItem LDA.l GanonVulnerabilityItem
AND.b #$7F
TAX TAX
LDA.l Ganon_IFrameDuration, X LDA.l Ganon_IFrameDuration, X
PLX PLX
@@ -52,7 +55,7 @@ Ganon_CheckAncillaVulnerability:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
Ganon_CheckPowderVulnerability: Ganon_CheckPowderVulnerability:
LDA.l GanonVulnerabilityItem : CMP.b #$05 : BNE .normal LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$05 : BNE .normal
LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .normal LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .normal
LDA.w $0EE0, X : BNE .normal ; ganon has i-frames LDA.w $0EE0, X : BNE .normal ; ganon has i-frames
LDA.l Ganon_IFrameDuration+$05 LDA.l Ganon_IFrameDuration+$05
@@ -69,7 +72,7 @@ Ganon_CheckPowderVulnerability:
Ganon_CheckBeeVulnerability: Ganon_CheckBeeVulnerability:
; X is bee sprite index ; X is bee sprite index
; Y is target sprite index ; Y is target sprite index
LDA.l GanonVulnerabilityItem : CMP.b #$10 : BNE .normal LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$10 : BNE .normal
LDA.w SpriteTypeTable, Y : CMP.b #$D7 : BNE .normal LDA.w SpriteTypeTable, Y : CMP.b #$D7 : BNE .normal
LDA.w $0EE0, Y : BNE .normal ; ganon has i-frames LDA.w $0EE0, Y : BNE .normal ; ganon has i-frames
LDA.l Ganon_IFrameDuration+$10 LDA.l Ganon_IFrameDuration+$10
@@ -88,14 +91,14 @@ Ganon_CheckInvincible:
LDA.w $04C5 : CMP.b #$02 : BEQ .not_transparent LDA.w $04C5 : CMP.b #$02 : BEQ .not_transparent
LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .transparent ; non-stunned ganon LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .transparent ; non-stunned ganon
LDA.w UseY1 : AND.b #$0A : BEQ .transparent ; normal behavior if not hammering LDA.w UseY1 : AND.b #$0A : BEQ .transparent ; normal behavior if not hammering
LDA.l GanonVulnerabilityItem : CMP.b #$0C : BNE .transparent LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$0C : BNE .transparent
.not_transparent .not_transparent
LDA.b #$00 : RTL LDA.b #$00 : RTL
.transparent .transparent
LDA.b #$01 : RTL LDA.b #$01 : RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
Ganon_CheckHammerVulnerability: Ganon_CheckHammerVulnerability:
LDA.l GanonVulnerabilityItem : CMP.b #$0C : BNE .normal LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$0C : BNE .normal
LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .normal LDA.w SpriteTypeTable, X : CMP.b #$D7 : BNE .normal
LDA.w $0EE0, X : BNE .normal ; ganon has i-frames LDA.w $0EE0, X : BNE .normal ; ganon has i-frames
LDA.l Ganon_IFrameDuration+$0C LDA.l Ganon_IFrameDuration+$0C
@@ -108,7 +111,7 @@ Ganon_CheckHammerVulnerability:
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CheckBeeBoss: CheckBeeBoss:
; Y is sprite index ; Y is sprite index
LDA.l GanonVulnerabilityItem : CMP.b #$10 : BNE .normal LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$10 : BNE .normal
LDA.w SpriteTypeTable, Y : CMP.b #$D7 : BNE .normal LDA.w SpriteTypeTable, Y : CMP.b #$D7 : BNE .normal
LDA.b #$00 : RTL LDA.b #$00 : RTL
.normal .normal
+3
View File
@@ -1,5 +1,8 @@
GoalItemGanonCheck: GoalItemGanonCheck:
LDA.w SpriteTypeTable, X : CMP.b #$D6 : BNE .success ; skip if not ganon LDA.w SpriteTypeTable, X : CMP.b #$D6 : BNE .success ; skip if not ganon
LDA.l GanonVulnerabilityItem : BPL +
LDA.w SpriteActivity, X : CMP.b #$12 : BEQ .fail
+
LDA.b #$01 : JSL CheckConditionPass LDA.b #$01 : JSL CheckConditionPass
BCS .success BCS .success
+19
View File
@@ -997,6 +997,15 @@ LDA.w BottleListExpanded, X
org $89895C ; 4895C - ancilla_init.asm:1344 (LDA PotionList, X) org $89895C ; 4895C - ancilla_init.asm:1344 (LDA PotionList, X)
LDA.w PotionListExpanded, X LDA.w PotionListExpanded, X
org $898946
CMP.b #$00 : BNE + : skip 9 : +
org $89895A
LDX.b #$06
org $89896A
ADC.b #$01
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $86D1EB ; 351EB - sprite_absorbable.asm:364 (STA $7EF375) ; bugbug commented out until i figure out why it doesn't work org $86D1EB ; 351EB - sprite_absorbable.asm:364 (STA $7EF375) ; bugbug commented out until i figure out why it doesn't work
JSL HandleBombAbsorbtion JSL HandleBombAbsorbtion
@@ -1029,6 +1038,7 @@ JSL RefillHealth
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $80F922 ; <- 7922 - Bank00.asm:8543 - (JSL HUD.RefillMagicPower : BCC .beta) org $80F922 ; <- 7922 - Bank00.asm:8543 - (JSL HUD.RefillMagicPower : BCC .beta)
JSL RefillMagic JSL RefillMagic
;--------------------------------------------------------------------------------
;================================================================================ ;================================================================================
; Early Bottle Fix ; Early Bottle Fix
@@ -1165,6 +1175,8 @@ ORA.w #$8000 : STA.w $007E, Y
ORA.w #$4000 : STA.w $0084, Y ORA.w #$4000 : STA.w $0084, Y
JSL AddYMarker : NOP #2 JSL AddYMarker : NOP #2
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $8DF779 ; <- 6F779 (not in disassembly) - mushroom bottle hud tile
dw $20D2, $60D2, $20E2, $202D ; (Orig: $2044, $2045, $2046, $2047)
org $8DF789+6 ; <- 6F789+6 (not in disassembly) - red bottle hud tile, lower right org $8DF789+6 ; <- 6F789+6 (not in disassembly) - red bottle hud tile, lower right
dw $2413 ; (Orig: #$24E3) dw $2413 ; (Orig: #$24E3)
org $8DF789+6+8 ; green bottle hud tile, lower right org $8DF789+6+8 ; green bottle hud tile, lower right
@@ -2847,3 +2859,10 @@ org $8DFB63 ; bank_0D.asm@18092 (LDA.l $7EF33F, X : AND.w #$00FF)
JSL CheckFluteInHUD JSL CheckFluteInHUD
NOP #3 NOP #3
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;================================================================================
; Orange Potion (Chateau Romani)
;--------------------------------------------------------------------------------
org $87A15C ; bank_07.asm@6963 (LDA.l $7EF35C, X)
JSL CheckOrangePotion
;--------------------------------------------------------------------------------
+6 -6
View File
@@ -239,7 +239,7 @@ endmacro
%ReceiptProps($63, -4, 0, $FF, $F36A, $FF, skip, rng_multi) ; 63 - RNG pool item (multi) %ReceiptProps($63, -4, 0, $FF, $F36A, $FF, skip, rng_multi) ; 63 - RNG pool item (multi)
%ReceiptProps($64, -4, 0, $FF, $F340, $FF, skip, progressive_bow) ; 64 - Progressive bow %ReceiptProps($64, -4, 0, $FF, $F340, $FF, skip, progressive_bow) ; 64 - Progressive bow
%ReceiptProps($65, -4, 0, $FF, $F340, $FF, skip, progressive_bow_2) ; 65 - Progressive bow %ReceiptProps($65, -4, 0, $FF, $F340, $FF, skip, progressive_bow_2) ; 65 - Progressive bow
%ReceiptProps($66, -4, 0, $FF, $F36A, $FF, skip, skip) ; 66 - %ReceiptProps($66, -4, 0, $51, $F36E, $FF, skip, skip) ; 66 - Potion refill (yellow)
%ReceiptProps($67, -4, 0, $FF, $F36A, $FF, skip, skip) ; 67 - %ReceiptProps($67, -4, 0, $FF, $F36A, $FF, skip, skip) ; 67 -
%ReceiptProps($68, -4, 0, $FF, $F36A, $FF, skip, skip) ; 68 - %ReceiptProps($68, -4, 0, $FF, $F36A, $FF, skip, skip) ; 68 -
%ReceiptProps($69, -4, 0, $FF, $F36A, $FF, skip, skip) ; 69 - %ReceiptProps($69, -4, 0, $FF, $F36A, $FF, skip, skip) ; 69 -
@@ -518,7 +518,7 @@ endmacro
%SpriteProps($63, 2, 2, $FF, $FF, $0000) ; 63 - RNG pool item (multi) %SpriteProps($63, 2, 2, $FF, $FF, $0000) ; 63 - RNG pool item (multi)
%SpriteProps($64, 2, 2, $FF, $FF, $0000) ; 64 - Progressive bow %SpriteProps($64, 2, 2, $FF, $FF, $0000) ; 64 - Progressive bow
%SpriteProps($65, 2, 2, $FF, $FF, $0000) ; 65 - Progressive bow %SpriteProps($65, 2, 2, $FF, $FF, $0000) ; 65 - Progressive bow
%SpriteProps($66, 2, 2, $00, $00, $0000) ; 66 - %SpriteProps($66, 2, 2, $02, $02, $0000) ; 66 - Potion refill (yellow)
%SpriteProps($67, 2, 2, $00, $00, $0000) ; 67 - %SpriteProps($67, 2, 2, $00, $00, $0000) ; 67 -
%SpriteProps($68, 2, 2, $00, $00, $0000) ; 68 - %SpriteProps($68, 2, 2, $00, $00, $0000) ; 68 -
%SpriteProps($69, 2, 2, $00, $00, $0000) ; 69 - %SpriteProps($69, 2, 2, $00, $00, $0000) ; 69 -
@@ -794,7 +794,7 @@ endmacro
%InventoryItem($63, $0001, $0000, $0000) ; 63 - RNG pool item (multi) %InventoryItem($63, $0001, $0000, $0000) ; 63 - RNG pool item (multi)
%InventoryItem($64, $00A5, $0000, $0000) ; 64 - Progressive bow %InventoryItem($64, $00A5, $0000, $0000) ; 64 - Progressive bow
%InventoryItem($65, $00A5, $0000, $0000) ; 65 - Progressive bow %InventoryItem($65, $00A5, $0000, $0000) ; 65 - Progressive bow
%InventoryItem($66, $0001, $0000, $0000) ; 66 - %InventoryItem($66, $0081, $0000, $0000) ; 66 - Potion refill (yellow)
%InventoryItem($67, $0001, $0000, $0000) ; 67 - %InventoryItem($67, $0001, $0000, $0000) ; 67 -
%InventoryItem($68, $0001, $0000, $0000) ; 68 - %InventoryItem($68, $0001, $0000, $0000) ; 68 -
%InventoryItem($69, $0001, $0000, $0000) ; 69 - %InventoryItem($69, $0001, $0000, $0000) ; 69 -
@@ -1054,7 +1054,7 @@ ItemReceiptGraphicsOffsets:
dw $0 ; 63 - RNG pool item (multi) dw $0 ; 63 - RNG pool item (multi)
dw $0 ; 64 - Progressive bow dw $0 ; 64 - Progressive bow
dw $0 ; 65 - Progressive bow dw $0 ; 65 - Progressive bow
dw $0 ; 66 - dw $0CE0 ; 66 - Potion refill (yellow)
dw $0 ; 67 - dw $0 ; 67 -
dw $0 ; 68 - dw $0 ; 68 -
dw $0 ; 69 - dw $0 ; 69 -
@@ -1324,7 +1324,7 @@ StandingItemGraphicsOffsets:
dw $0 ; 63 - RNG pool item (multi) dw $0 ; 63 - RNG pool item (multi)
dw $0 ; 64 - Progressive bow dw $0 ; 64 - Progressive bow
dw $0 ; 65 - Progressive bow dw $0 ; 65 - Progressive bow
dw $0 ; 66 - dw $0CA0 ; 66 - Potion refill (yellow)
dw $0 ; 67 - dw $0 ; 67 -
dw $0 ; 68 - dw $0 ; 68 -
dw $0 ; 69 - dw $0 ; 69 -
@@ -1590,7 +1590,7 @@ VRAMAddressOffset:
dw $0024 ; 63 - RNG pool item (multi) dw $0024 ; 63 - RNG pool item (multi)
dw $0024 ; 64 - Progressive bow dw $0024 ; 64 - Progressive bow
dw $0024 ; 65 - Progressive bow dw $0024 ; 65 - Progressive bow
dw $0024 ; 66 - dw $0024 ; 66 - Potion refill (yellow)
dw $0024 ; 67 - dw $0024 ; 67 -
dw $0024 ; 68 - dw $0024 ; 68 -
dw $0024 ; 69 - dw $0024 ; 69 -
+8 -3
View File
@@ -273,10 +273,15 @@ NewHUD_DrawMagicMeter:
STA.w CurrentMagic STA.w CurrentMagic
TAY TAY
LDA.b FrameCounter
REP #$30 REP #$30
AND.w #$000C LDA.w #$0002
LSR
; ; cycle through colors
; LDA.b FrameCounter
; REP #$30
; AND.w #$000C
; LSR
BRA .recolor BRA .recolor
.set_index ; this branch is always 0000 when taken .set_index ; this branch is always 0000 when taken
+1 -1
View File
@@ -935,7 +935,7 @@ BottleListExpanded:
db $16, $2B, $2C, $2D, $3D, $3C, $48 db $16, $2B, $2C, $2D, $3D, $3C, $48
PotionListExpanded: PotionListExpanded:
db $2E, $2F, $30, $FF, $0E db $66, $FF, $2E, $2F, $30, $FF, $0E
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
HandleBowTracking: HandleBowTracking:
; In: A - Item Receipt ID ; In: A - Item Receipt ID
+1
View File
@@ -433,6 +433,7 @@ Shopkeeper_BuyItem:
CMP.b #$2E : BEQ .refill ; Red Potion Refill CMP.b #$2E : BEQ .refill ; Red Potion Refill
CMP.b #$2F : BEQ .refill ; Green Potion Refill CMP.b #$2F : BEQ .refill ; Green Potion Refill
CMP.b #$30 : BEQ .refill ; Blue Potion Refill CMP.b #$30 : BEQ .refill ; Blue Potion Refill
CMP.b #$66 : BEQ .refill ; Orange Potion Refill
CMP.b #$AF : BEQ .generic_key CMP.b #$AF : BEQ .generic_key
BRA + BRA +
.refill .refill
+5 -3
View File
@@ -263,8 +263,10 @@ dw $3D9E ; ~ ;
dw $3D98 ; , ; dw $3D98 ; , ;
dw $3D99 ; - ; $FB dw $3D99 ; - ; $FB
dw $0000 ; ; dw $0000 ; ;
dw $0000 ; ;
dw $0000 ; ;
; green ellipsis ;
dw $293F ; ; $FD
; green period
dw $29FE ; ; $FE
; yellow dot ; yellow dot
dw $2DFA ; ; FF dw $2DFA ; ; $FF
+1 -1
View File
@@ -174,7 +174,7 @@ FindLine:
!FRAMES_PER_SECOND = 60 !FRAMES_PER_SECOND = 60
!FRAMES_PER_MINUTE = 60*60 !FRAMES_PER_MINUTE = 60*60
!FRAMES_PER_HOUR = 60*60*60 !FRAMES_PER_HOUR = 60*60*60
!MAX_FRAME_COUNT = (99*60)+(59*60)+(59*60)+59 !MAX_FRAME_COUNT = (99*60*60*60)+(59*60*60)+(59*60)+59
macro CountUnits(framesPerUnit, unitCounter) macro CountUnits(framesPerUnit, unitCounter)
STZ.b <unitCounter> STZ.b <unitCounter>
+1 -1
View File
@@ -101,7 +101,7 @@ CheckGanonHammerDamage:
LDA.w SpriteTypeTable, X : CMP.b #$D8 ; original behavior except ganon LDA.w SpriteTypeTable, X : CMP.b #$D8 ; original behavior except ganon
RTL RTL
+ +
LDA.l GanonVulnerabilityItem : CMP.b #$0C : BEQ .hammer_silvers LDA.l GanonVulnerabilityItem : AND.b #$7F : CMP.b #$0C : BEQ .hammer_silvers
LDA.w SpriteTypeTable, X : CMP.b #$D6 ; original behavior LDA.w SpriteTypeTable, X : CMP.b #$D6 ; original behavior
RTL RTL
+4
View File
@@ -105,6 +105,10 @@ db $00
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $B0802E org $B0802E
GanonVulnerabilityItem: GanonVulnerabilityItem:
; sn-i iiii
; s - immune to sword spins in phase 4
; n - immune to all items
; i - index of item vulnerability
db $00 ; $00 = default behavior (silver arrows) db $00 ; $00 = default behavior (silver arrows)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $B0902F org $B0902F
+1 -1
View File
@@ -368,7 +368,7 @@ FontProperties:
dw $8001, $06C0 ; C7 ; ! dw $8001, $06C0 ; C7 ; !
dw $8001, $02D0 ; C8 ; , dw $8001, $02D0 ; C8 ; ,
dw $8001, $02B0 ; C9 ; - dw $8001, $02B0 ; C9 ; -
dw $8000, $0000 ; CA ; 🡄" dw $8000, $0000 ; CA ; 🡄
dw $8000, $0000 ; CB ; 🡆 dw $8000, $0000 ; CB ; 🡆
dw $0000, $0000 ; CC ; Blank char dw $0000, $0000 ; CC ; Blank char
dw $8001, $02C0 ; CD ; . dw $8001, $02C0 ; CD ; .