diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index e7df23e..b47f391 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -134,7 +134,7 @@ incsrc msu.asm incsrc dialog.asm incsrc entrances.asm incsrc clock.asm -incsrc accessability.asm +incsrc accessibility.asm incsrc heartbeep.asm incsrc capacityupgrades.asm incsrc timer.asm @@ -465,6 +465,9 @@ LoadGearPalettes_bunny: org $02FD95 ; 17D95 - Bank0E.asm: 3742 Note: Different bank LoadGearPalettes_variable: +org $02FEAB +Filter_Majorly_Whiten_Color: + org $05A51D Sprite_SpawnFallingItem: diff --git a/accessability.asm b/accessability.asm deleted file mode 100644 index 46dba25..0000000 --- a/accessability.asm +++ /dev/null @@ -1,36 +0,0 @@ -;================================================================================ -; Accessability Fixes -;================================================================================ -FlipGreenPendant: - LDA $0C : CMP #$38 : BNE + ; check if we have green pendant - ORA #$40 : STA $0C ; flip it - + - - LDA $0D : STA $0802, X ; stuff we wrote over "Set CHR, palette, and priority of the sprite" - LDA $0C : STA $0803, X -RTL -;================================================================================ -!EPILEPSY_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 ++ - +++ - LSR : CMP !EPILEPSY_TIMER : !BLT ++ - SEP #$02 : RTL - ++ - REP #$02 - + -RTL -;================================================================================ -SetAttractMaidenFlicker: - LDA.l Seizure_Safety : BNE + - JSL.l Filter_MajorWhitenMain : LDA $5F : RTL - + - LDA #$00 -RTL -;================================================================================ \ No newline at end of file diff --git a/accessibility.asm b/accessibility.asm new file mode 100644 index 0000000..ee2095f --- /dev/null +++ b/accessibility.asm @@ -0,0 +1,228 @@ +;================================================================================ +; Accessability Fixes +;================================================================================ +FlipGreenPendant: + LDA $0C : CMP #$38 : BNE + ; check if we have green pendant + ORA #$40 : STA $0C ; flip it + + + + LDA $0D : STA $0802, X ; stuff we wrote over "Set CHR, palette, and priority of the sprite" + LDA $0C : STA $0803, X +RTL +;================================================================================ +ConditionalLightning: + CMP.b #$05 : BEQ ++ + CMP.b #$2C : BEQ ++ + CMP.b #$5A : BEQ ++ + LDA.l DisableFlashing : BNE ++ + LDA.b #$32 : STA.w $9A + RTL + ++ + LDA.b #$72 + STA $9A + +RTL +;================================================================================ +ConditionalWhitenBg: + LDX.b #$00 + LDA.l DisableFlashing + REP #$20 : BNE + + LDA $00,X + JSR WhitenLoopReal + RTL + + + LDA $00 + JSR WhitenLoopDummy + RTL + +;================================================================================ +WhitenLoopReal: + - + LDA $7EC340, X : JSL Filter_Majorly_Whiten_Color : STA $7EC540, X + LDA $7EC350, X : JSL Filter_Majorly_Whiten_Color : STA $7EC550, X + LDA $7EC360, X : JSL Filter_Majorly_Whiten_Color : STA $7EC560, X + LDA $7EC370, X : JSL Filter_Majorly_Whiten_Color : STA $7EC570, X + LDA $7EC380, X : JSL Filter_Majorly_Whiten_Color : STA $7EC580, X + LDA $7EC390, X : JSL Filter_Majorly_Whiten_Color : STA $7EC590, X + LDA $7EC3A0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5A0, X + LDA $7EC3B0, X : JSL Filter_Majorly_Whiten_Color : STA $7EC5B0, X + 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 + 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 + + TAY + + + TYA : STA $7EC500 + SEP #$30 +RTS +;================================================================================ +WhitenLoopDummy: + - + LDA $7EC340, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC540, X + LDA $7EC350, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC550, X + LDA $7EC360, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC560, X + LDA $7EC370, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC570, X + LDA $7EC380, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC580, X + LDA $7EC390, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC590, X + LDA $7EC3A0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5A0, X + LDA $7EC3B0, X : JSL Filter_Majorly_Whiten_Color : LDA $7EC5B0, X + 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 + 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 + + TAY + + + TYA : STA $7EC500 + SEP #$30 +RTS +;================================================================================ +RestoreBgEther: + LDX.b #$00 + LDA.l DisableFlashing : REP #$20 : BNE + + - + LDA $00,X + LDA $7EC340, X : STA $7EC540, X + LDA $7EC350, X : STA $7EC550, X + LDA $7EC360, X : STA $7EC560, X + LDA $7EC370, X : STA $7EC570, X + LDA $7EC380, X : STA $7EC580, X + LDA $7EC390, X : STA $7EC590, X + LDA $7EC3A0, X : STA $7EC5A0, X + LDA $7EC3B0, X : STA $7EC5B0, X + LDA $7EC3C0, X : STA $7EC5C0, X + LDA $7EC3D0, X : STA $7EC5D0, X + LDA $7EC3E0, X : STA $7EC5E0, X + LDA $7EC3F0, X : STA $7EC5F0, X + INX #2 : CPX.b #$10 : BNE - + BRA ++ + + + - + LDA $00 + LDA $7EC340, X : LDA $7EC540, X + LDA $7EC350, X : LDA $7EC550, X + LDA $7EC360, X : LDA $7EC560, X + LDA $7EC370, X : LDA $7EC570, X + LDA $7EC380, X : LDA $7EC580, X + LDA $7EC390, X : LDA $7EC590, X + LDA $7EC3A0, X : LDA $7EC5A0, X + LDA $7EC3B0, X : LDA $7EC5B0, X + LDA $7EC3C0, X : LDA $7EC5C0, X + LDA $7EC3D0, X : LDA $7EC5D0, X + LDA $7EC3E0, X : LDA $7EC5E0, X + LDA $7EC3F0, X : LDA $7EC5F0, X + INX #2 : CPX.b #$10 : BNE - + BRA ++ + ++ + JML $02FF51 + +;================================================================================ +DDMConditionalLightning: + LDA.l DisableFlashing + REP #$20 + BNE + + LDA.w $0000 + LDX.b #$02 + JML $07FA7F + + + LDA.b $00 + - + LDA $F4EB, Y : LDA $7EC560, X + LDA $F4F9, Y : LDA $7EC570, X + LDA $F507, Y : LDA $7EC590, X + LDA $F515, Y : LDA $7EC5E0, X + LDA $F523, Y : LDA $7EC5F0, X + INY #2 + INX #2 : CPX.b #$10 : BNE - + + LDX.b #$02 + JML $07FAAC + +;================================================================================ +ConditionalGTFlash: + LDA.l DisableFlashing + REP #$20 + BNE + + LDA $0000 + - + LDA $F9C1, Y : STA $7EC5D0, X + INY #2 + INX #2 : CPX.b #$10 : BNE - + RTL + + + LDA $00 + - + LDA $F9C1, Y : LDA $7EC5D0, X + INY #2 + INX #2 : CPX.b #$10 : BNE - +RTL +;================================================================================ +ConditionalRedFlash: + LDA.l DisableFlashing + REP #$20 : BNE + + LDA $00,X + LDA.w #$1D59 : STA $7EC5DA + LDA.w #$25FF : STA $7EC5DC + LDA.w #$001A + RTL + + + + LDA $00 + LDA.w #$1D59 : LDA $7EC5DA + LDA.w #$25FF : LDA $7EC5DC + LDA.w #$0000 + +RTL diff --git a/hooks.asm b/hooks.asm index 2e26c7d..83737d6 100755 --- a/hooks.asm +++ b/hooks.asm @@ -731,19 +731,37 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 ;-------------------------------------------------------------------------------- ;================================================================================ -; Accessability +; Accessibility ;-------------------------------------------------------------------------------- ;org $0AC574 ; <- 54574 - Bank0A.asm : 1797 (LDA $0D : STA $0802, X) ;JSL FlipGreenPendant ;NOP #6 ;-------------------------------------------------------------------------------- -org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 28 (LDA $031D : CMP.b #$0B) -JSL.l SetEtherFlicker : NOP +org $08AAF9 ; -< 42AF9 - ancilla_ether_spell.asm : 46 (JSL Palette_Restore_BG_From_Flash) +JSL.l RestoreBgEther ;-------------------------------------------------------------------------------- -org $0CF37B ; <- 6737B - Bank0C.asm : 5055 (JSL Filter_MajorWhitenMain) -JSL.l SetAttractMaidenFlicker : NOP #2 +org $02A3F4 ; <- 123F4 - Bank02.asm : 6222 (LDA.b #$72 : BRA .setBrightness) +BRA + : NOP #2 : + +org $02A3FD ; <- 123FD - Bank02.asm : 6233 (LDA.b #$32 : STA $9a) +JSL.l ConditionalLightning ;-------------------------------------------------------------------------------- - +org $1DE9CD ; <- EE9CD - Bank1D.asm : 568 (JSL Filter_Majorly_Whiten_Bg) +JSL.l ConditionalWhitenBg +;-------------------------------------------------------------------------------- +org $08AAED ; <- 42AED - ancilla_ether_spell.asm : 35 (JSL Filter_Majorly_Whiten_Bg) +JSL.l ConditionalWhitenBg +;-------------------------------------------------------------------------------- +org $02FEE6 ; <- 17EE6 - Bank0E.asm : 3907 (RTS) +RTL ; the whiten color routine is only JSL-ed to +;-------------------------------------------------------------------------------- +org $07FA7B ; <- 3FA7B - Bank0E.asm : 4735 (REP #$20 : LDX.b #$02) +JML DDMConditionalLightning +;-------------------------------------------------------------------------------- +org $07FACB ; <- 3FACB - Bank0E.asm : 4773 (REP #$20 : LDA #$F531, Y) +JSL.l ConditionalGTFlash : BRA + : NOP #11 : + +;-------------------------------------------------------------------------------- +org $0AFF48 ; <- 57F48 - Bank0A.asm : 4935 (REP #$20 : LDA $7EC3DA) +JSL.l ConditionalRedFlash : BRA + : NOP #13 : + ;================================================================================ ; Ice Floor Toggle ;-------------------------------------------------------------------------------- diff --git a/tables.asm b/tables.asm index 93204e8..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