diff --git a/darkworldspawn.asm b/darkworldspawn.asm index dca2cc8..1ed404d 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -2,7 +2,6 @@ ; Dark World Spawn Location Fix & Master Sword Grove Fix ;-------------------------------------------------------------------------------- DarkWorldSaveFix: - LDA.b #$70 : PHA : PLB ; thing we wrote over - data bank change JSL MasterSwordFollowerClear JML StatSaveCounter ;-------------------------------------------------------------------------------- diff --git a/enemizer/bosses_moved.asm b/enemizer/bosses_moved.asm index c5f518c..c11674d 100644 --- a/enemizer/bosses_moved.asm +++ b/enemizer/bosses_moved.asm @@ -288,3 +288,16 @@ new_trinexx_code: RTL ;-------------------------------------------------------------------------------- + +;================================================================================ +; Check if water tile in Swamp boss room, skip interaction +;-------------------------------------------------------------------------------- +swamp_boss_tile_interaction: + LDA.l Sprite_ReducedTileInteractionTable, X : BEQ .return + CPX.b #$09 : BNE .return ; return if non-water tile + LDX.b IndoorsFlag : BEQ .return ; return if overworld + LDX.b RoomIndex : CPX.b #$06 : BNE .return ; return if not swamp boss room + LDA.b #$00 +.return + RTL +;-------------------------------------------------------------------------------- diff --git a/enemizer/hooks/bosses_hooks.asm b/enemizer/hooks/bosses_hooks.asm index f64c68f..5ae4f0b 100644 --- a/enemizer/hooks/bosses_hooks.asm +++ b/enemizer/hooks/bosses_hooks.asm @@ -39,3 +39,10 @@ JSL new_kholdstare_code ; Write new gfx in the vram org $1DAD67 ; sprite_trinexx.asm (62) : LDA.b #$03 : STA $0DC0, X JSL new_trinexx_code : NOP ;-------------------------------------------------------------------------------- + +;================================================================================ +; Swamp Boss Room Water Fix +;-------------------------------------------------------------------------------- +org $06E81A +JSL swamp_boss_tile_interaction +;-------------------------------------------------------------------------------- diff --git a/events.asm b/events.asm index a62655d..783a020 100644 --- a/events.asm +++ b/events.asm @@ -61,13 +61,22 @@ OnDungeonExit: PLP : PLA RTL ;-------------------------------------------------------------------------------- +OnSave: + LDA.b #$70 : PHA : PLB ; thing we wrote over - data bank change + JSL DarkWorldSaveFix + JML MSUResumeReset +;-------------------------------------------------------------------------------- OnQuit: JSL SQEGFix - JSL MSUResumeReset LDA.b #$00 : STA.l AltTextFlag ; bandaid patch bug with mirroring away from text LDA.b #$10 : STA.b MAINDESQ ; thing we wrote over RTL ;-------------------------------------------------------------------------------- +OnDeathNoSave: + JSL MSUResumeReset + LDA.b #$05 : STA.b $10 ; what we wrote over +RTL +;-------------------------------------------------------------------------------- OnUncleItemGet: PHA diff --git a/follower.asm b/follower.asm index a296723..ae6a777 100644 --- a/follower.asm +++ b/follower.asm @@ -793,7 +793,7 @@ Kiki_OfferToFollow: PHA LDA.w SpriteTimerE, X : BNE .skip_collision_check PLA - JML Sprite_ShowMessageFromPlayerContact ; what we wrote over + JML Sprite_ShowMessageUnconditional ; what we wrote over .skip_collision_check PLA CLC : RTL @@ -819,6 +819,7 @@ RTL ; on return it checks BEQ and if non-zero, kiki get spook Kiki_DontScareTheMonke: LDA.b LinkJumping : BEQ .return + CMP.b #$02 : BEQ .no_spook ; needed for quake usage LDA.w NoDamage : BNE .no_spook LDA.w LinkThud : BNE .no_spook .spook @@ -862,11 +863,18 @@ dw 0, 0 : db $EC, $00, $00, $02 db $00, $00, $00, $0E, $00, $00, $0E, $0E, $00, $0E, $00, $0E, $0E Locksmith_Chillin_PostMessage: + LDA.w SpriteAux, X : BEQ + + ; when a follower is stored, merely walk near them + LDA.w SpritePosXLow, X : PHA + JSL Follower_CheckCollision : BCC .return + BRA .continue + + LDA.w SpritePosXLow, X : PHA - SEC : SBC.b #$0A : STA.w SpritePosXLow, X - LDA.w SpritePosYLow, X : PHA - SEC : SBC.b #$0A : STA.w SpritePosYLow, X - JSL Follower_CheckCollision : BCC .return + SEC : SBC.b #$10 : STA.w SpritePosXLow, X + LDA.b #$01 : STA.w SpriteVelocityX, X + JSL Sprite_Get16BitCoords_long + JSL Follower_CheckTileCollision : BNE .return +.continue INC.w SpriteActivity, X ; award follower LDA.l FollowerIndicator : CMP.b #$0C : BEQ .purple_chest_prize LDA.l FollowerTravelAllowed : CMP.b #$02 : BEQ .return @@ -876,7 +884,6 @@ Locksmith_Chillin_PostMessage: .purple_chest_prize INC.w SpriteActivity, X ; prep for purple chest prize .return - PLA : STA.w SpritePosYLow, X PLA : STA.w SpritePosXLow, X JML $86BD08 ; jump back to immediately RTS @@ -899,7 +906,7 @@ Locksmith_RespondToAnswer_PostItem: LDA.l FollowerTravelAllowed : CMP.b #$02 : BNE .no_despawn LDA.l Follower_Locksmith : CMP.b #$0C : BEQ .despawn LDA.w SpriteAux, X : BNE .no_despawn - LDA.l Follower_Locksmith : CMP.b #$0C : BNE .no_despawn + JSL DetermineFollowerSpawn_include_stored : BCC .no_despawn .despawn STZ.w SpriteAITable, X .no_despawn diff --git a/hooks.asm b/hooks.asm index 9b665ef..28031cc 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1874,11 +1874,14 @@ JSL CalculateSignIndex ; Dark World Spawn Location Fix & Follower Fixes ;-------------------------------------------------------------------------------- org $80894A ; <- 94A -PHB : JSL DarkWorldSaveFix +PHB : JSL OnSave ;-------------------------------------------------------------------------------- org $828046 ; <- 10046 - Bank02.asm : 217 (JSL EnableForceBlank) (Start of Module_LoadFile) JSL OnFileLoad ;-------------------------------------------------------------------------------- +org $89F5DF +JSL OnDeathNoSave +;-------------------------------------------------------------------------------- org $8280A2 JSL GetCurrentWorldForLoad ;-------------------------------------------------------------------------------- diff --git a/msu.asm b/msu.asm index 1b66f16..37adba5 100644 --- a/msu.asm +++ b/msu.asm @@ -427,8 +427,6 @@ StoreMusicOnDeath: MSUInit: PHP - LDA.b #$00 - STA.l MSULoadedTrack JSL MSUResumeReset LDA.l NoBGM : BNE .done @@ -499,6 +497,7 @@ MSUInit: ;-------------------------------------------------------------------------------- MSUResumeReset: LDA.b #$00 + STA.l MSULoadedTrack STA.l MSUResumeTrack STA.l MSUResumeTime : STA.l MSUResumeTime+1 : STA.l MSUResumeTime+2 : STA.l MSUResumeTime+3 STA.l MSUResumeControl diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 69549fb..2b1cb66 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -168,7 +168,7 @@ RTL ;-------------------------------------------------------------------------------- ChangeBootsColorForFakeBoots: LDA.l FakeBoots : AND.w #$00FF : BEQ + - LDA.l EquipmentSRAM+$15 : AND.w #$00FF : BNE + + LDA.l BootsEquipment : AND.w #$00FF : BNE + LDA.w #$F851 ; address of ItemMenu_ItemIcons_usused_nothing, which has the fake boots now BRA ++ + LDA.w #$F821 ; address of ItemMenu_ItemIcons_boots diff --git a/vanillalabels.asm b/vanillalabels.asm index 4a5d7eb..fb40811 100644 --- a/vanillalabels.asm +++ b/vanillalabels.asm @@ -286,4 +286,5 @@ Overworld_Entrance_ID = $9BBB73 SwordPaletteOffsets = $9BEBB4 ShieldPaletteOffsets = $9BEBC1 LinkMailPalettesOffsets = $9BEC06 +Sprite_ReducedTileInteractionTable = $9DF6CF RoomData_ObjectDataPointers = $9F8000