TASEmulators / TASEmulators/BizHawk

Switch/toggle input type

Open
#3,811 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: EmuHawk Meta Open to design proposals only Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

We have bool buttons and analog, but they both reset their state to default (false for buttons and mid for analog) after you've changed them once.

For certain things we need a way to switch between on/off or a different number of variations, in a way that makes the last changed state persist until it's changed again.

#2048 contains a lot of context, and #3757 is an example when it's needed.

Yoshi suggested this

We might be able to add "is sticky" semantics to AxisSpec, or maybe Controller needs to change.

and I think the former is a good idea, but I wonder if there are cases when analog numbers would not be sufficient for such a switch, because how would a user know what the values mean?

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 by reading the AxisSpec and Controller entry points, then review the context in issues #2048 and #3757. Determine how bool buttons and analog inputs currently reset, and settle the semantics for a sticky switch or multi-variation input. Done means the last changed state persists until changed again, with the meaning of supported values clear to users.

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.