diff --git a/worlds/kss/client.py b/worlds/kss/client.py index e8d1fcb981a0..029ccee2b6a2 100644 --- a/worlds/kss/client.py +++ b/worlds/kss/client.py @@ -111,6 +111,11 @@ async def game_watcher(self, ctx: "SNIContext") -> None: unlocked_planets = int.from_bytes(await snes_read(ctx, KSS_RECEIVED_PLANETS, 2), "little") unlocked_planets |= (1 << planet) snes_buffered_write(ctx, KSS_RECEIVED_PLANETS, unlocked_planets.to_bytes(2, "little")) + elif item.item & 0x800 != 0: + switch = item.item & 0xFF + unlocked_switches = int.from_bytes(await snes_read(ctx, KSS_DYNA_SWITCHES, 1), "little") + unlocked_switches |= (1 << switch) + snes_buffered_write(ctx, KSS_DYNA_SWITCHES, unlocked_switches.to_bytes(1, "little")) else: pass diff --git a/worlds/kss/data/kss_basepatch.bsdiff4 b/worlds/kss/data/kss_basepatch.bsdiff4 index d1b2ea92ccb1..d0d8ba44dc34 100644 Binary files a/worlds/kss/data/kss_basepatch.bsdiff4 and b/worlds/kss/data/kss_basepatch.bsdiff4 differ diff --git a/worlds/kss/src/kss_basepatch.asm b/worlds/kss/src/kss_basepatch.asm index 65d2a40866c4..ddad24131fd2 100644 --- a/worlds/kss/src/kss_basepatch.asm +++ b/worlds/kss/src/kss_basepatch.asm @@ -113,6 +113,9 @@ org $02A34B JML hook_copy_ability NOP +org $07DF3E + NOP #3 ; Dyna Blade initialization, just need to preserve switch state + org $07DF95 JSL load_game NOP #14 ; TGCO initialization