BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
System.Collections.Generic.KeyNotFoundException: The given key 'Disk Index' was not present in the dictionary.
bei System.Collections.Immutable.ImmutableDictionary`2.get_Item(TKey key)
bei System.Collections.Immutable.ImmutableDictionary`2.System.Collections.Generic.IDictionary<TKey,TValue>.get_Item(TKey key)
bei BizHawk.Emulation.Common.AxisDict.get_Item(String index) in D:\GitHub\BizHawk\src\BizHawk.Emulation.Common\Base Implementations\Axes\AxisDict.cs:Zeile 28.
bei BizHawk.Client.Common.StickyHoldController.AxisValue(String name) in D:\GitHub\BizHawk\src\BizHawk.Client.Common\controllers\StickyControllers.cs:Zeile 29.
bei BizHawk.Client.Common.ORAdapter.AxisValue(String name) in D:\GitHub\BizHawk\src\BizHawk.Client.Common\inputAdapters\BitwiseAdapters.cs:Zeile 82.
bei BizHawk.Client.Common.XorAdapter.AxisValue(String name) in D:\GitHub\BizHawk\src\BizHawk.Client.Common\inputAdapters\BitwiseAdapters.cs:Zeile 51.
bei BizHawk.Client.Common.CopyControllerAdapter.AxisValue(String name) in D:\GitHub\BizHawk\src\BizHawk.Client.Common\inputAdapters\CopyController.cs:Zeile 16.
bei BizHawk.Client.Common.CopyControllerAdapter.AxisValue(String name) in D:\GitHub\BizHawk\src\BizHawk.Client.Common\inputAdapters\CopyController.cs:Zeile 16.
bei BizHawk.Emulation.Cores.Waterbox.NymaCore.FrameAdvancePrep(IController controller, Boolean render, Boolean rendersound) in D:\GitHub\BizHawk\src\BizHawk.Emulation.Cores\Waterbox\NymaCore.cs:Zeile 253.
bei BizHawk.Emulation.Cores.Waterbox.WaterboxCore.FrameAdvance(IController controller, Boolean render, Boolean rendersound) in D:\GitHub\BizHawk\src\BizHawk.Emulation.Cores\Waterbox\WaterboxCore.cs:Zeile 207.
bei BizHawk.Client.EmuHawk.MainForm.StepRunLoop_Core(Boolean force) in D:\GitHub\BizHawk\src\BizHawk.Client.EmuHawk\MainForm.cs:Zeile 3043.
bei BizHawk.Client.EmuHawk.MainForm.ProgramRunLoop() in D:\GitHub\BizHawk\src\BizHawk.Client.EmuHawk\MainForm.cs:Zeile 893.
bei BizHawk.Client.EmuHawk.Program.SubMain(String[] args) in D:\GitHub\BizHawk\src\BizHawk.Client.EmuHawk\Program.cs:Zeile 346.
bei BizHawk.Client.EmuHawk.Program.Main(String[] args) in D:\GitHub\BizHawk\src\BizHawk.Client.EmuHawk\Program.cs:Zeile 89.
The cause of this is 3af5b7a7f0ae512523eae4d93be150dde2384560, as that changed logic to make AxisValue() throw if the given axis value is invalid instead of silently returning 0 instead.
Obviously this could be easily fixed by slapping some TryGetValue()s on these functions to make them "fail" silently again, but I wonder whether that is the correct approach. I feel like trying to get the axis value for a nonexistent axis is a failure scenario, especially as it's not clear what value to return. In this case it would also be easy to fix the calling code to not check the Disk Index axis value when the core is not a disc core.
As reported on the TASVideos Discord:
The cause of this is 3af5b7a7f0ae512523eae4d93be150dde2384560, as that changed logic to make
AxisValue()
throw if the given axis value is invalid instead of silently returning 0 instead.Obviously this could be easily fixed by slapping some
TryGetValue()
s on these functions to make them "fail" silently again, but I wonder whether that is the correct approach. I feel like trying to get the axis value for a nonexistent axis is a failure scenario, especially as it's not clear what value to return. In this case it would also be easy to fix the calling code to not check theDisk Index
axis value when the core is not a disc core.