From fe708fd20fa8de45c0962c713802879e45a41127 Mon Sep 17 00:00:00 2001 From: cassidy Date: Sun, 25 Apr 2021 16:09:42 -0400 Subject: [PATCH] Restore invisible floors when flashing is disabled Replace Seizure_Safety with FlashingDisabled --- accessibility.asm | 89 ++++++++++++++++++++++++++++++++++++++--------- tables.asm | 10 ++---- 2 files changed, 75 insertions(+), 24 deletions(-) diff --git a/accessibility.asm b/accessibility.asm index 62c024e..2fa39f3 100644 --- a/accessibility.asm +++ b/accessibility.asm @@ -10,21 +10,34 @@ FlipGreenPendant: LDA $0C : STA $0803, X RTL ;================================================================================ -!EPILEPSY_TIMER = "$7F5041" +!WHITEN_TIMER = "$7F5041" SetEtherFlicker: - LDA.l Seizure_Safety : BNE + - LDA $031D : CMP.b #$0B : RTL - + - LDA !EPILEPSY_TIMER : INC : STA !EPILEPSY_TIMER - - LDA.l Seizure_Safety : CMP !EPILEPSY_TIMER : BNE +++ - LDA.b #$00 : STA !EPILEPSY_TIMER : BRA ++ + LDA DisableFlashing : BNE + + ;LDA $00,X + LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER + + LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ + LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ +++ - LSR : CMP !EPILEPSY_TIMER : !BLT ++ - SEP #$02 : RTL + LSR : CMP !WHITEN_TIMER : !BLT ++ + LDA $031D : CMP.b #$0B + RTL ++ - REP #$02 + LDA $031D : CMP.b #$0B + RTL + + ;LDA $00 + LDA !WHITEN_TIMER : INC : STA !WHITEN_TIMER + + LDA.b #$FF : CMP !WHITEN_TIMER : BNE +++ + LDA.b #$00 : STA !WHITEN_TIMER : BRA ++ + +++ + LSR : CMP !WHITEN_TIMER : !BLT ++ + LDA $031D : SEP #$02 + RTL + ++ + LDA $031D : REP #$02 + RTL ;================================================================================ ConditionalLightning: @@ -41,9 +54,9 @@ ConditionalLightning: RTL ;================================================================================ ConditionalWhitenBg: - REP #$20 LDX.b #$00 - LDA DisableFlashing : BNE + + LDA.l DisableFlashing + REP #$20 : BNE + LDA $00,X JSR WhitenLoopReal RTL @@ -66,10 +79,31 @@ WhitenLoopReal: LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5C0, X LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5D0, X LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5E0, X - LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5F0, X INX #2 : CPX.b #$10 : BEQ + JMP - + + LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F0 + LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F2 + LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F4 + LDA $10 : CMP.w #$07 : BNE + + LDA $048E + CMP.w #$3C : BEQ ++ ; hookshot cave + CMP.w #$9D : BEQ ++ ; gt right + CMP.w #$9C : BEQ ++ ; gt big room + CMP.w #$A5 : BEQ ++ ; wizzrobes 1 + + + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + ++ + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + +++ + + LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : STA $7EC5FA + LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : STA $7EC5FC + LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : STA $7EC5FE REP #$10 LDA $7EC540 : TAY LDA $7EC300 : BNE + @@ -92,10 +126,31 @@ WhitenLoopDummy: LDA $7EC3C0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5C0, X LDA $7EC3D0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5D0, X LDA $7EC3E0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5E0, X - LDA $7EC3F0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0, X INX #2 : CPX.b #$10 : BEQ + JMP - + + + LDA $7EC3F0 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F0 + LDA $7EC3F2 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F2 + LDA $7EC3F4 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F4 + LDA $10 : CMP.w #$07 : BNE + ; only light invisifloor if we're in dungeon submodule + LDA $048E + CMP.w #$3C : BEQ ++ ; hookshot cave + CMP.w #$9D : BEQ ++ ; gt right + CMP.w #$9C : BEQ ++ ; gt big room + CMP.w #$A5 : BEQ ++ ; wizzrobes 1 + + + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : LDA $7EC5F8 + BRA +++ + ++ + LDA $7EC3F6 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F6 + LDA $7EC3F8 : JSL Filter_Majorly_Whiten_Color : STA $7EC5F8 + BRA +++ + +++ + LDA $7EC3FA : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FA + LDA $7EC3FC : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FC + LDA $7EC3FE : JSL Filter_Majorly_Whiten_Color : LDA $7EC5FE REP #$10 LDA $7EC540 : TAY LDA $7EC300 : BNE + @@ -146,8 +201,8 @@ ConditionalGTFlash: RTL ;================================================================================ ConditionalRedFlash: - REP #$20 - LDA.l DisableFlashing : BNE + + LDA.l DisableFlashing + REP #$20 : BNE + LDA $00,X LDA.w #$1D59 : STA $7EC5DA LDA.w #$25FF : STA $7EC5DC diff --git a/tables.asm b/tables.asm index 4403f6b..4775e81 100644 --- a/tables.asm +++ b/tables.asm @@ -873,8 +873,8 @@ Restrict_Ponds: db #$01 ; #$00 = Original Behavior - #$01 - Restrict to Bottles (Default) ;================================================================================ org $30817F ; PC 0x18017F -Seizure_Safety: -db #$00 ; #$00 = Off (Default) - #$xx = Limit Certain Effects +DisableFlashing: +db #$00 ; #$00 = Flashing Enabled (Default) - #$01 = Flashing Disabled ;================================================================================ ;---- --hb ;h - Hookshot @@ -916,11 +916,7 @@ db #$00 RainDeathRefillArrows_Mantle: db #$00 ;================================================================================ -org $30818E ; PC 0x18018E -DisableFlashing: -db $00 ; $00 = Flashing enabled (default) $01 = Flashing disabled -;================================================================================ -; 0x18018F (unused) +; 0x18018E - 0x18018F (unused) ;================================================================================ org $308190 ; PC 0x180190 - 0x180192 TimerStyle: