iidx: delay logic for iidx tt (#669)

## Link to GitHub Issue or related Pull Request, if one exists
Re-implements fix for #181 as it was removed by #668

## Description of change
Add two options to add artificial delay to turntable input. These
operate directly on the input logic (`get_tt`) which is called by I/O
emulation code.

Functionally, it's **identical** to the `Delay (experimental)` option we
had in the analog tab, just moved to Options tab.

## Testing
64 bit tdj: ok
64 bit ldj bi2a: ok
32 bit ldj ezusb: ok

Worth noting that TDJ bi2x_hook polls at 120Hz, bi2a at ~500Hz, and
ezusb at ~170Hz
This commit is contained in:
bicarus
2026-05-02 02:17:51 -07:00
committed by GitHub
parent c5a4e954f9
commit 79a3e32d5d
5 changed files with 52 additions and 1 deletions
+20
View File
@@ -655,6 +655,26 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.game_name = "Beatmania IIDX",
.category = "Game Options",
},
{
// IIDXTTDelayP1
.title = "IIDX TT Delay Frames (Player 1)",
.name = "iidxttdelayp1",
.desc = "Delays turntable input by number of poll frames. Heavily dependent on what I/O emulation is in use! "
"As usual, changing any option requires a restart. Default: 0 (no delay).",
.type = OptionType::Integer,
.game_name = "Beatmania IIDX",
.category = "Game Options (Advanced)",
},
{
// IIDXTTDelayP2
.title = "IIDX TT Delay Frames (Player 2)",
.name = "iidxttdelayp2",
.desc = "Delays turntable input by number of poll frames. Heavily dependent on what I/O emulation is in use! "
"As usual, changing any option requires a restart. Default: 0 (no delay).",
.type = OptionType::Integer,
.game_name = "Beatmania IIDX",
.category = "Game Options (Advanced)",
},
{
// spice2x_IIDXDigitalTTSensitivity
.title = "IIDX Digital TT Sensitivity",