TASEmulators / TASEmulators/BizHawk

Gamepad axis deadzone while binding

Open
#1,933 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk help wanted Request: Feature/Enhancement Requires WinForms Designer
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

The deadzones for axes ("float controls") currently only applies when calculating virtual input. A separate deadzone, hardcoded in the input method, is applied when using the binding dialogs. A "global" deadzone should be added to the bottom of Config > Controllers... and Config > Hotkeys....

until then, here's a Lua script for debugging gamepads when a "host deadzone" is desperately needed

local WINDOW = 100;

local concat_names = function(list)
	local s = "";
	local l = "";
	for k, _ in pairs(list) do
		l = l..k.."   ";
		if #l > 60 then
			s = s..l.."\n";
			l = "";
		end
	end
	return s..l;
end;

local held = {};
local held_str = "";
while true do
	for k, v in pairs(input.get()) do held[k] = v; end
	if emu.framecount() % WINDOW == 0 then
		held_str = concat_names(held);
		held = {};
	end
	gui.text(0, 0, held_str, nil, "bottomleft");
	emu.frameadvance();
end

see also my notes #27, my notes #145

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the input method's hardcoded binding-dialog deadzone and the Config > Controllers... and Config > Hotkeys... dialogs. Confirm the global setting is applied to axis binding while preserving the existing virtual-input deadzone behavior; done when both dialogs expose the setting and binding no longer uses a separate hardcoded value.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.