diff --git a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs index 48bd345718..0660a6fee4 100644 --- a/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs +++ b/src/BizHawk.Client.Common/movie/tasproj/TasMovie.cs @@ -40,8 +40,15 @@ namespace BizHawk.Client.Common TasStateManager.Attach(emulator); base.Attach(emulator); + + foreach (var button in emulator.ControllerDefinition.BoolButtons) + { + _mnemonicCache[button] = Bk2MnemonicLookup.Lookup(button, emulator.SystemId); + } } + private readonly Dictionary _mnemonicCache = new Dictionary(); + public override bool StartsFromSavestate { get => base.StartsFromSavestate; @@ -127,15 +134,15 @@ namespace BizHawk.Client.Common _displayCache = (frame, GetInputState(frame)); } - return CreateDisplayValueForButton(_displayCache.Controller, Emulator.SystemId, buttonName); + return CreateDisplayValueForButton(_displayCache.Controller, buttonName); } - private static string CreateDisplayValueForButton(IController adapter, string systemId, string buttonName) + private string CreateDisplayValueForButton(IController adapter, string buttonName) { if (adapter.Definition.BoolButtons.Contains(buttonName)) { return adapter.IsPressed(buttonName) - ? Bk2MnemonicLookup.Lookup(buttonName, systemId).ToString() + ? _mnemonicCache[buttonName].ToString() : ""; }