286 lines
13 KiB
NASM
286 lines
13 KiB
NASM
;================================================================================
|
|
; 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
|