TASEmulators / TASEmulators/BizHawk

(feature request) Relative analog inputs in TAStudio

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

Nobody has claimed this yet.

Request: Feature/Enhancement Tool: TAStudio Waiting on dev consensus
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

This would be a pretty niche feature but it would be great for TASing 3D games where you control the camera with an analog stick (first-person shooters come to mind).

Normally in TAStudio, you put in an absolute value for your analog inputs. Assuming the center of the analog stick is 128 (like it is in Dolphin), If you were TASing a first-person shooter and you wanted to turn the camera to the right, your analog X inputs might look like this on each frame of the turn:

analog x:
128
138
148
158
168
178
188
178
168
158
148
138
128

The reason I would turn the camera like this is so the final result looks smoother than just holding the analog stick all the way to the right for a few frames. The beginning of the turn is kind of slow then it accelerates and then it decelerates, which makes the camera movement look more natural. However, this means that every number would have to be typed in manually. There's no way I know of to simply tell TAStudio to "take the previous value and add 10 to it".

I'm proposing a system where you can tell TAStudio to have relative analog input for part of your TAS instead of absolute analog input everywhere. If that were a feature, my inputs might look like this instead:

analog x:
128
+10
+10
+10
+10
+10
+10
-10
-10
-10
-10
-10
-10
128

This would make it a breeze to TAS smooth camera turns because you could just tell TAStudio how much you want it to move the analog stick on each frame, instead of telling it exactly where you want it to be on any given frame. The +10 would just take the value from the previous frame and add 10 to it. So the first +10 would look earlier and see the 128, then add 10 to it, giving you 138. The next +10 would look at the previous row, and add another 10 to it, giving you 148, and so on.

An example of where a feature like this could have helped me in the past:
https://youtu.be/wANwWtKBXNw
Yes, I know this is a Wii game, which is not on BizHawk. But this is just an example of how camera movement can really affect a first-person shooter TAS. Those inputs where I turn the camera all had to be done manually because Dolphin LUA doesn't support Wii pointer inputs and there's no system like this in Dolphin. That short video took several hours to make. I'm not saying the feature has to be like Excel where you can type long formulas in the cell to calculate all kinds of things, but a simple addition and subtraction feature would help a lot.

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 locating TAStudio's analog-input editing entry point and reviewing how absolute values are represented across frames. Define the relative-input behavior described in the issue, including positive and negative adjustments, and verify that the resulting frame values support smooth camera turns.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
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.