;================================================================================ ; Accessibility Fixes ;================================================================================ ConditionalLightning: CMP.b #$05 : BEQ ++ CMP.b #$2C : BEQ ++ CMP.b #$5A : BEQ ++ LDA.l DisableFlashing : BNE ++ LDA.b #$32 : STA.w CGADSUBQ RTL ++ LDA.b #$72 STA.b CGADSUBQ RTL ;================================================================================ ConditionalWhitenBg: LDX.b #$00 LDA.l DisableFlashing : REP #$20 : BNE + LDA.b Scrap00,X JSR WhitenLoopReal RTL + LDA.b Scrap00 JSR WhitenLoopDummy RTL ;================================================================================ WhitenLoopReal: - LDA.l PaletteBufferAux+$40, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$40, X LDA.l PaletteBufferAux+$50, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$50, X LDA.l PaletteBufferAux+$60, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$60, X LDA.l PaletteBufferAux+$70, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$70, X LDA.l PaletteBufferAux+$80, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$80, X LDA.l PaletteBufferAux+$90, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$90, X LDA.l PaletteBufferAux+$A0, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$A0, X LDA.l PaletteBufferAux+$B0, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$B0, X LDA.l PaletteBufferAux+$C0, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$C0, X LDA.l PaletteBufferAux+$D0, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$D0, X LDA.l PaletteBufferAux+$E0, X : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$E0, X INX #2 : CPX.b #$10 : BEQ + JMP - + LDA.l PaletteBufferAux+$F0 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F0 LDA.l PaletteBufferAux+$F2 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F2 LDA.l PaletteBufferAux+$F4 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F4 LDA.b GameMode : CMP.w #$0007 : BNE + LDA.b RoomIndex CMP.w #$003C : BEQ ++ CMP.w #$009D : BEQ ++ CMP.w #$009C : BEQ ++ CMP.w #$00A5 : BEQ ++ + LDA.l PaletteBufferAux+$F6 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F6 LDA.l PaletteBufferAux+$F8 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F8 BRA +++ ++ LDA.l PaletteBuffer+$F6 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F6 LDA.l PaletteBuffer+$F8 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F8 BRA +++ +++ LDA.l PaletteBufferAux+$FA : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$FA LDA.l PaletteBufferAux+$FC : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$FC LDA.l PaletteBufferAux+$FE : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$FE REP #$10 LDA.l PaletteBuffer+$40 : TAY LDA.l PaletteBufferAux : BNE + TAY + TYA : STA.l PaletteBuffer SEP #$30 RTS ;================================================================================ WhitenLoopDummy: - LDA.l PaletteBufferAux+$40, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$40, X LDA.l PaletteBufferAux+$50, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$50, X LDA.l PaletteBufferAux+$60, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$60, X LDA.l PaletteBufferAux+$70, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$70, X LDA.l PaletteBufferAux+$80, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$80, X LDA.l PaletteBufferAux+$90, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$90, X LDA.l PaletteBufferAux+$A0, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$A0, X LDA.l PaletteBufferAux+$B0, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$B0, X LDA.l PaletteBufferAux+$C0, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$C0, X LDA.l PaletteBufferAux+$D0, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$D0, X LDA.l PaletteBufferAux+$E0, X : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$E0, X INX #2 : CPX.b #$10 : BEQ + JMP - + LDA.l PaletteBufferAux+$F0 : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$F0 LDA.l PaletteBufferAux+$F2 : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$F2 LDA.l PaletteBufferAux+$F4 : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$F4 LDA.b GameMode : CMP.w #$0007 : BNE + ; only light invisifloor if we're in dungeon submodule LDA.b RoomIndex CMP.w #$003C : BEQ ++ ; hookshot cave CMP.w #$009D : BEQ ++ ; gt right CMP.w #$009C : BEQ ++ ; gt big room CMP.w #$00A5 : BEQ ++ ; wizzrobes 1 + LDA.l PaletteBufferAux+$F6 : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$F6 LDA.l PaletteBufferAux+$F8 : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$F8 BRA +++ ++ LDA.l PaletteBufferAux+$F6 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F6 LDA.l PaletteBufferAux+$F8 : JSL Filter_Majorly_Whiten_Color : STA.l PaletteBuffer+$F8 BRA +++ +++ LDA.l PaletteBufferAux+$FA : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$FA LDA.l PaletteBufferAux+$FC : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$FC LDA.l PaletteBufferAux+$FE : JSL Filter_Majorly_Whiten_Color : LDA.l PaletteBuffer+$FE REP #$10 LDA.l PaletteBuffer+$40 : TAY LDA.l PaletteBufferAux : BNE + TAY + TYA : STA.l PaletteBuffer SEP #$30 RTS ;================================================================================ RestoreBgEther: LDX.b #$00 LDA.l DisableFlashing : REP #$20 : BNE + - LDA.b Scrap00,X LDA.l PaletteBufferAux+$40, X : STA.l PaletteBuffer+$40, X LDA.l PaletteBufferAux+$50, X : STA.l PaletteBuffer+$50, X LDA.l PaletteBufferAux+$60, X : STA.l PaletteBuffer+$60, X LDA.l PaletteBufferAux+$70, X : STA.l PaletteBuffer+$70, X LDA.l PaletteBufferAux+$80, X : STA.l PaletteBuffer+$80, X LDA.l PaletteBufferAux+$90, X : STA.l PaletteBuffer+$90, X LDA.l PaletteBufferAux+$A0, X : STA.l PaletteBuffer+$A0, X LDA.l PaletteBufferAux+$B0, X : STA.l PaletteBuffer+$B0, X LDA.l PaletteBufferAux+$C0, X : STA.l PaletteBuffer+$C0, X LDA.l PaletteBufferAux+$D0, X : STA.l PaletteBuffer+$D0, X LDA.l PaletteBufferAux+$E0, X : STA.l PaletteBuffer+$E0, X LDA.l PaletteBufferAux+$F0, X : STA.l PaletteBuffer+$F0, X INX #2 : CPX.b #$10 : BNE - BRA ++ + - LDA.b Scrap00 LDA.l PaletteBufferAux+$40, X : LDA.l PaletteBuffer+$40, X LDA.l PaletteBufferAux+$50, X : LDA.l PaletteBuffer+$50, X LDA.l PaletteBufferAux+$60, X : LDA.l PaletteBuffer+$60, X LDA.l PaletteBufferAux+$70, X : LDA.l PaletteBuffer+$70, X LDA.l PaletteBufferAux+$80, X : LDA.l PaletteBuffer+$80, X LDA.l PaletteBufferAux+$90, X : LDA.l PaletteBuffer+$90, X LDA.l PaletteBufferAux+$A0, X : LDA.l PaletteBuffer+$A0, X LDA.l PaletteBufferAux+$B0, X : LDA.l PaletteBuffer+$B0, X LDA.l PaletteBufferAux+$C0, X : LDA.l PaletteBuffer+$C0, X LDA.l PaletteBufferAux+$D0, X : LDA.l PaletteBuffer+$D0, X LDA.l PaletteBufferAux+$E0, X : LDA.l PaletteBuffer+$E0, X LDA.l PaletteBufferAux+$F0, X : LDA.l PaletteBuffer+$F0, X INX #2 : CPX.b #$10 : BNE - BRA ++ ++ JML Palette_RestoreFixedColor-7 ; Bank0E.asm : 3936 vanilla restore routine after loop which RTLs ;================================================================================ DDMConditionalLightning: LDA.l DisableFlashing REP #$20 BNE + LDA.w Scrap LDX.b #$02 JML FlashGanonTowerPalette_next_thunder-2 ; Bank0E.asm : 4738 vanilla loop equivalent to below beginning at LDY #$00 + LDA.b Scrap00 : LDX.b #$02 : LDY.b #$00 - LDA.w $F4EB, Y : LDA.l PaletteBuffer+$60, X LDA.w $F4F9, Y : LDA.l PaletteBuffer+$70, X LDA.w $F507, Y : LDA.l PaletteBuffer+$90, X LDA.w $F515, Y : LDA.l PaletteBuffer+$E0, X LDA.w $F523, Y : LDA.l PaletteBuffer+$F0, X INY #2 INX #2 : CPX.b #$10 : BNE - JML FlashGanonTowerPalette_bright_white ; Bank0E.asm : 4754 both branches converge here ;================================================================================ ConditionalGTFlash: LDA.l DisableFlashing : REP #$20 : BNE + LDA.w Scrap - LDA.w $F9C1, Y : STA.l PaletteBuffer+$D0, X INY #2 INX #2 : CPX.b #$10 : BNE - RTL + LDA.b Scrap00 - LDA.w $F9C1, Y : LDA.l PaletteBuffer+$D0, X INY #2 INX #2 : CPX.b #$10 : BNE - RTL ;================================================================================ ConditionalRedFlash: LDA.l DisableFlashing : REP #$20 : BNE + LDA.b Scrap,X LDA.w #$1D59 : STA.l PaletteBuffer+$DA LDA.w #$25FF : STA.l PaletteBuffer+$DC LDA.w #$001A RTL + LDA.b Scrap00 LDA.w #$1D59 : LDA.l PaletteBuffer+$DA LDA.w #$25FF : LDA.l PaletteBuffer+$DC LDA.w #$0000 RTL ;================================================================================ ConditionalPedAncilla: LDA.l DisableFlashing : REP #$20 : BNE + LDA.b Scrap,X LDA.b Scrap00 : STA.b Scrap04 LDA.b Scrap02 : STA.b Scrap06 RTL + LDA.b Scrap LDA.b Scrap00 : LDA.b Scrap04 LDA.b Scrap02 : LDA.b Scrap06 RTL ;================================================================================ LoadElectroPalette: REP #$20 LDA.w #$0202 : STA.b Scrap0C LDA.w #$0404 : STA.b Scrap0E LDA.w #$001B : STA.b Scrap02 SEP #$10 LDX.b Scrap0C : LDA.l SwordPaletteOffsets, X : AND.w #$00FF : ADC.w #$D630 REP #$10 : LDX.w #$01B2 : LDY.w #$0002 JSR ConditionalLoadGearPalette SEP #$10 LDX.b Scrap0D LDA.l ShieldPaletteOffsets, X : AND.w #$00FF : ADC.w #$D648 REP #$10 : LDX.w #$01B8 : LDY.w #$0003 JSR ConditionalLoadGearPalette SEP #$10 LDX.b Scrap0E LDA.l LinkMailPalettesOffsets, X : AND.w #$00FF : ASL A : ADC.w #$D308 REP #$10 : LDX.w #$01E2 : LDY.w #$000E JSR ConditionalLoadGearPalette SEP #$30 INC.b NMICGRAM RTL ;================================================================================ ConditionalLoadGearPalette: STA.b Scrap00 SEP #$20 LDA.l DisableFlashing : REP #$20 : BNE + LDA.b Scrap,X - LDA.b [Scrap00] STA.l PaletteBuffer, X INC.b Scrap00 : INC.b Scrap00 INX #2 DEY BPL - RTS + LDA.b Scrap - LDA.b [Scrap00] LDA.l PaletteBuffer, X INC.b Scrap00 : INC.b Scrap00 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.b NMICGRAM RTL ;================================================================================ FillPaletteBufferFromAux: - LDA.l PaletteBufferAux, X STA.l PaletteBuffer, X INX #2 DEY BPL - RTS