mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 22:30:42 -07:00
jubeat: introduce new algorithm for touch (#686)
## Description of change There was enough feedback that the current algorithm is not ideal for most touch screens because most touch screens are not 24". In the current algorithm touching the gap is no-op, so people think the game is dropping touches. This PR introduces a new algorithm that inspect touches on the gap and triggers the nearest square. ## Testing Tested landscape and portrait jubeat.
This commit is contained in:
@@ -1148,8 +1148,18 @@ int main_implementation(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
if (options[launcher::Options::spice2x_JubeatLegacyTouch].value_bool()) {
|
||||
games::jb::TOUCH_LEGACY_BOX = true;
|
||||
games::jb::TOUCH_ALGORITHM = games::jb::JubeatTouchAlgorithm::Legacy;
|
||||
}
|
||||
if (options[launcher::Options::JubeatTouchAlgo].is_active()) {
|
||||
if (options[launcher::Options::JubeatTouchAlgo].value_text() == "accurate") {
|
||||
games::jb::TOUCH_ALGORITHM = games::jb::JubeatTouchAlgorithm::AcAccurate;
|
||||
} else if (options[launcher::Options::JubeatTouchAlgo].value_text() == "legacy") {
|
||||
games::jb::TOUCH_ALGORITHM = games::jb::JubeatTouchAlgorithm::Legacy;
|
||||
} else {
|
||||
games::jb::TOUCH_ALGORITHM = games::jb::JubeatTouchAlgorithm::Improved;
|
||||
}
|
||||
}
|
||||
|
||||
if (options[launcher::Options::spice2x_RBTouchScale].is_active()) {
|
||||
games::rb::TOUCH_SCALING = options[launcher::Options::spice2x_RBTouchScale].value_uint32();
|
||||
}
|
||||
|
||||
@@ -2279,16 +2279,32 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
|
||||
},
|
||||
{
|
||||
// spice2x_JubeatLegacyTouch
|
||||
.title = "JB Legacy Touch Targets",
|
||||
.title = "JB Legacy Touch Targets (Deprecated - use -jubeattouchalgo instead)",
|
||||
.name = "sp2x-jubeatlegacytouch",
|
||||
.display_name = "jubeatlegacytouch",
|
||||
.aliases= "jubeatlegacytouch",
|
||||
.desc = "For touch screen players - use the legacy & less accurate grid-based layout for touch recognition, "
|
||||
"instead of the new & more accurate touch targets. Default: off.",
|
||||
.desc = "Deprecated - use -jubeattouchalgo instead.",
|
||||
.type = OptionType::Bool,
|
||||
.hidden = true,
|
||||
.game_name = "Jubeat",
|
||||
.category = "Game Options",
|
||||
},
|
||||
{
|
||||
.title = "JB Touch Algorithm",
|
||||
.name = "jubeattouchalgo",
|
||||
.desc = "For touch screen players - choose the touch algorithm to use.\n\n"
|
||||
"legacy - evenly divide the grid into 16 squares; old spicetools behavior, slightly inaccurate in gaps\n\n"
|
||||
"improved (default) - squares register as-is, gaps will trigger the closest square\n\n"
|
||||
"accurate - only touches within squares will trigger; gaps do nothing (for AC size touch screens)",
|
||||
.type = OptionType::Enum,
|
||||
.game_name = "Jubeat",
|
||||
.category = "Game Options",
|
||||
.elements = {
|
||||
{"legacy", ""},
|
||||
{"improved", ""},
|
||||
{"accurate", ""},
|
||||
},
|
||||
},
|
||||
{
|
||||
// spice2x_RBTouchScale
|
||||
.title = "RB Scale Touch Input",
|
||||
|
||||
@@ -239,6 +239,7 @@ namespace launcher {
|
||||
IIDXWindowedSubscreenBorderless,
|
||||
IIDXWindowedSubscreenAlwaysOnTop,
|
||||
spice2x_JubeatLegacyTouch,
|
||||
JubeatTouchAlgo,
|
||||
spice2x_RBTouchScale,
|
||||
spice2x_AsioForceUnload,
|
||||
spice2x_IIDXNoESpec,
|
||||
|
||||
Reference in New Issue
Block a user