Rewrite to handle electro palette, leave bunny alone

Should fix bunny issues
Big thank to kara for report, assistance, and testing
This commit is contained in:
cassidy
2021-06-14 13:14:38 -04:00
parent 2276b5782a
commit 77f742b25c
4 changed files with 92 additions and 51 deletions

View File

@@ -24,8 +24,7 @@ RTL
;================================================================================ ;================================================================================
ConditionalWhitenBg: ConditionalWhitenBg:
LDX.b #$00 LDX.b #$00
LDA.l DisableFlashing LDA.l DisableFlashing : REP #$20 : BNE +
REP #$20 : BNE +
LDA $00,X LDA $00,X
JSR WhitenLoopReal JSR WhitenLoopReal
RTL RTL
@@ -55,10 +54,10 @@ WhitenLoopReal:
LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F4 LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F4
LDA $10 : CMP.w #$07 : BNE + LDA $10 : CMP.w #$07 : BNE +
LDA $048E LDA $048E
CMP.w #$3C : BEQ ++ ; hookshot cave CMP.w #$3C : BEQ ++
CMP.w #$9D : BEQ ++ ; gt right CMP.w #$9D : BEQ ++
CMP.w #$9C : BEQ ++ ; gt big room CMP.w #$9C : BEQ ++
CMP.w #$A5 : BEQ ++ ; wizzrobes 1 CMP.w #$A5 : BEQ ++
+ +
LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6
LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8
@@ -68,7 +67,6 @@ WhitenLoopReal:
LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8
BRA +++ BRA +++
+++ +++
LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : STA $7EC5FA LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : STA $7EC5FA
LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : STA $7EC5FC LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : STA $7EC5FC
LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : STA $7EC5FE LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : STA $7EC5FE
@@ -97,7 +95,6 @@ WhitenLoopDummy:
INX #2 : CPX.b #$10 : BEQ + INX #2 : CPX.b #$10 : BEQ +
JMP - JMP -
+ +
LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0 LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0
LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F2 LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F2
LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F4 LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F4
@@ -165,7 +162,7 @@ RestoreBgEther:
INX #2 : CPX.b #$10 : BNE - INX #2 : CPX.b #$10 : BNE -
BRA ++ BRA ++
++ ++
JML $02FF51 JML $02FF51
;================================================================================ ;================================================================================
DDMConditionalLightning: DDMConditionalLightning:
LDA.l DisableFlashing LDA.l DisableFlashing
@@ -184,7 +181,6 @@ DDMConditionalLightning:
LDA $F523, Y : LDA $7EC5F0, X LDA $F523, Y : LDA $7EC5F0, X
INY #2 INY #2
INX #2 : CPX.b #$10 : BNE - INX #2 : CPX.b #$10 : BNE -
JML $07FAAC JML $07FAAC
;================================================================================ ;================================================================================
ConditionalGTFlash: ConditionalGTFlash:
@@ -213,17 +209,15 @@ ConditionalRedFlash:
LDA.w #$25FF : STA $7EC5DC LDA.w #$25FF : STA $7EC5DC
LDA.w #$001A LDA.w #$001A
RTL RTL
+ +
LDA $00 LDA $00
LDA.w #$1D59 : LDA $7EC5DA LDA.w #$1D59 : LDA $7EC5DA
LDA.w #$25FF : LDA $7EC5DC LDA.w #$25FF : LDA $7EC5DC
LDA.w #$0000 LDA.w #$0000
RTL RTL
;================================================================================ ;================================================================================
ConditionalPedAncilla: ConditionalPedAncilla:
LDA.l DisableFlashing LDA.l DisableFlashing : REP #$20 : BNE +
REP #$20 : BNE +
LDA $00,X LDA $00,X
LDA $00 : STA $04 LDA $00 : STA $04
LDA $02 : STA $06 LDA $02 : STA $06
@@ -232,32 +226,74 @@ ConditionalPedAncilla:
LDA $00 LDA $00
LDA $00 : LDA $04 LDA $00 : LDA $04
LDA $02 : LDA $06 LDA $02 : LDA $06
RTL
;================================================================================
LoadElectroPalette:
REP #$20
LDA.w #$0202 : STA $0C
LDA.w #$0404 : STA $0E
LDA.w #$001B : STA $02
SEP #$10
LDX $0C : LDA $1BEBB4, X : AND.w #$00FF : ADC #$D630
REP #$10 : LDX.w #$01B2 : LDY.w #$0002
JSR ConditionalLoadGearPalette
SEP #$10
LDX $0D
LDA $1BEBC1, X : AND.w #$00FF : ADC #$D648
REP #$10
LDX.w #$01B8 : LDY.w #$0003
JSR ConditionalLoadGearPalette
SEP #$10
LDX $0E
LDA $1BEC06, X : AND.w #$00FF : ASL A : ADC #$D308
REP #$10
LDX.w #$01E2 : LDY.w #$000E
JSR ConditionalLoadGearPalette
SEP #$30
INC $15
RTL RTL
;================================================================================ ;================================================================================
ConditionalChangeGearPalette: ConditionalLoadGearPalette:
PHY STA $00
STA $00
SEP #$20
LDA.l DisableFlashing : REP #$20 : BNE +
LDA $00,X
-
LDA [$00] : STA $7EC300, X : STA $7EC500, X
INC $00 : INC $00
INX #2
DEY : BPL -
BRA ++
+
LDA $00
-
LDA [$00] : LDA $7EC300, X : LDA $7EC500, X
INC $00 : INC $00
INX #2
DEY : BPL -
BRA ++
++
PLY ; use what was in Y register to determine which p flags to set
CPY #$000E : BNE +
SEP #$20 SEP #$20
+ LDA.l DisableFlashing : REP #$20 : BNE +
SEP #$10 LDA $00,X
-
LDA [$00]
STA $7EC500, X
INC $00 : INC $00
INX #2
DEY
BPL -
RTS
+
LDA $00
-
LDA [$00]
LDA $7EC500, X
INC $00 : INC $00
INX #2
DEY
BPL -
RTS
;================================================================================
RestoreElectroPalette:
REP #$30
LDX.w #$01B2 : LDY.w #$0002
JSR FillPaletteBufferFromAux
LDX.w #$01B8 : LDY.w #$0003
JSR FillPaletteBufferFromAux
LDX.w #$01E2 : LDY.w #$000E
JSR FillPaletteBufferFromAux
SEP #$30
INC $15
RTL RTL
;================================================================================
FillPaletteBufferFromAux:
-
LDA $7EC300, X
STA $7EC500, X
INX #2
DEY
BPL -
RTS

View File

@@ -16,7 +16,7 @@ OnPrepFileSelect:
OnDrawHud: OnDrawHud:
JSL.l DrawChallengeTimer ; this has to come before NewDrawHud because the timer overwrites the compass counter JSL.l DrawChallengeTimer ; this has to come before NewDrawHud because the timer overwrites the compass counter
JSL.l NewDrawHud JSL.l NewDrawHud
JSL.l SwapSpriteIfNecissary JSL.l SwapSpriteIfNecessary
JSL.l CuccoStorm JSL.l CuccoStorm
JSL.l PollService JSL.l PollService
JML.l ReturnFromOnDrawHud JML.l ReturnFromOnDrawHud

View File

@@ -737,9 +737,6 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030
;JSL FlipGreenPendant ;JSL FlipGreenPendant
;NOP #6 ;NOP #6
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $08AAF9 ; -< 42AF9 - ancilla_ether_spell.asm : 46 (JSL Palette_Restore_BG_From_Flash)
JSL.l RestoreBgEther
;--------------------------------------------------------------------------------
org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness) org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness)
BRA + : NOP #2 : + BRA + : NOP #2 : +
org $02A3FD ; <- 123FD - Bank02.asm : 6233 (LDA.b #$32 : STA $9a) org $02A3FD ; <- 123FD - Bank02.asm : 6233 (LDA.b #$32 : STA $9a)
@@ -748,6 +745,15 @@ JSL.l ConditionalLightning
org $1DE9CD ; <- EE9CD - Bank1D.asm : 568 (JSL Filter_Majorly_Whiten_Bg) org $1DE9CD ; <- EE9CD - Bank1D.asm : 568 (JSL Filter_Majorly_Whiten_Bg)
JSL.l ConditionalWhitenBg JSL.l ConditionalWhitenBg
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $08AAE9 ; <- 042AE9 - ancilla_ether_spell.asm : 34 (JSL Palette_ElectroThemedGear)
JSL.l LoadElectroPalette
;--------------------------------------------------------------------------------
org $08AAF5 ; <- 042AF5 - ancilla_ether_spell.asm : 45 (JSL LoadActualGearPalettes)
JSL.l RestoreElectroPalette
;--------------------------------------------------------------------------------
org $08AAF9 ; -< 42AF9 - ancilla_ether_spell.asm : 46 (JSL Palette_Restore_BG_From_Flash)
JSL.l RestoreBgEther
;--------------------------------------------------------------------------------
org $08AAED ; <- 42AED - ancilla_ether_spell.asm : 35 (JSL Filter_Majorly_Whiten_Bg) org $08AAED ; <- 42AED - ancilla_ether_spell.asm : 35 (JSL Filter_Majorly_Whiten_Bg)
JSL.l ConditionalWhitenBg JSL.l ConditionalWhitenBg
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -766,14 +772,13 @@ JSL.l ConditionalRedFlash : BRA + : NOP #13 : +
org $08C2A1 ; <- 442A3 - ancilla_sword_ceremony.asm : 54 (REP #$20) org $08C2A1 ; <- 442A3 - ancilla_sword_ceremony.asm : 54 (REP #$20)
JSL.l ConditionalPedAncilla : BRA + : NOP #4 : + JSL.l ConditionalPedAncilla : BRA + : NOP #4 : +
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $02FDB1 ; <- 17DB1 - Bank0E.asm : 3760 (JSL LoadGearPalette) org $079976 ; <- 039976 - Bank07.asm : 4009 (JSL Palette_ElectroThemedGear)
JSL.l ConditionalChangeGearPalette : NOP JSL.l LoadElectroPalette
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $02FDCB ; <- 17DCB - Bank0E.asm : 3775 (JSL LoadGearPalette) org $07997C ; <- 03997C - Bank07.asm : 4015 (JSL LoadActualGearPalettes)
JSL.l ConditionalChangeGearPalette : NOP JSL.l RestoreElectroPalette
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $02FDE6 ; <- 17DE6 - Bank0E.asm : 3789 (JSL LoadGearPalette)
JSL.l ConditionalChangeGearPalette : NOP
;================================================================================ ;================================================================================
; Ice Floor Toggle ; Ice Floor Toggle
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -15,7 +15,7 @@ RTL
!BANK_BASE = "#$29" !BANK_BASE = "#$29"
org $BF8000 org $BF8000
SwapSpriteIfNecissary: SwapSpriteIfNecessary:
PHP PHP
SEP #$20 ; set 8-bit accumulator SEP #$20 ; set 8-bit accumulator
LDA !SPRITE_SWAP : BEQ + : !ADD !BANK_BASE : CMP $BC : BEQ + LDA !SPRITE_SWAP : BEQ + : !ADD !BANK_BASE : CMP $BC : BEQ +