diff --git a/src/BizHawk.Client.Common/tools/Cheat.cs b/src/BizHawk.Client.Common/tools/Cheat.cs index bae019699e..1840449e18 100644 --- a/src/BizHawk.Client.Common/tools/Cheat.cs +++ b/src/BizHawk.Client.Common/tools/Cheat.cs @@ -167,17 +167,24 @@ namespace BizHawk.Client.Common { if (ShouldPoke()) { - switch (_watch.Size) + try { - case WatchSize.Byte: - _watch.Poke(((ByteWatch)_watch).FormatValue((byte)_val)); - break; - case WatchSize.Word: - _watch.Poke(((WordWatch)_watch).FormatValue((ushort)_val)); - break; - case WatchSize.DWord: - _watch.Poke(((DWordWatch)_watch).FormatValue((uint)_val)); - break; + switch (_watch.Size) + { + case WatchSize.Byte: + _watch.PokeByte(unchecked((byte) _val)); + break; + case WatchSize.Word: + _watch.PokeWord(unchecked((ushort) _val)); + break; + case WatchSize.DWord: + _watch.PokeDWord(unchecked((uint) _val)); + break; + } + } + catch + { + // ignore (matches `*Watch.Poke` implementations) } } diff --git a/src/BizHawk.Client.Common/tools/Watch/Watch.cs b/src/BizHawk.Client.Common/tools/Watch/Watch.cs index f1f0d24e35..1405123cfd 100644 --- a/src/BizHawk.Client.Common/tools/Watch/Watch.cs +++ b/src/BizHawk.Client.Common/tools/Watch/Watch.cs @@ -285,7 +285,7 @@ namespace BizHawk.Client.Common : 0; } - protected void PokeByte(byte val) + protected internal void PokeByte(byte val) { if (IsValid) { @@ -293,7 +293,7 @@ namespace BizHawk.Client.Common } } - protected void PokeWord(ushort val) + protected internal void PokeWord(ushort val) { if (IsValid) { @@ -301,7 +301,7 @@ namespace BizHawk.Client.Common } } - protected void PokeDWord(uint val) + protected internal void PokeDWord(uint val) { if (IsValid) {