nost: touch piano mode (#830)

## Link to GitHub Issue or related Pull Request, if one exists
n/a

## Description of change
Touch piano mode. Allows piano keys to be played with the touch screen.
Since the touch screen is still needed for menu navigation (including
during songs) a toggle switch is added so that the user can flip between
navigation mode and piano mode.

The touch targets are pixel-perfect. Don't let the game's piano
animations fool you.

## Testing
This commit is contained in:
bicarus
2026-07-23 15:49:50 -07:00
committed by GitHub
parent 80deb4bbbd
commit 64600826b7
15 changed files with 540 additions and 2 deletions
+10 -1
View File
@@ -1786,7 +1786,16 @@ int main_implementation(int argc, char *argv[]) {
games::iidx::poke::enable();
}
if (options[launcher::Options::NostalgiaPoke].is_active()) {
games::nost::ENABLE_POKE = TRUE;
games::nost::ENABLE_POKE = true;
}
if (options[launcher::Options::NostalgiaTouchMode].is_active()) {
if (overlay::ENABLED) {
games::nost::ENABLE_TOUCH_MODE = true;
} else {
log_warning(
"launcher",
"Nostalgia Touch Mode requires the global overlay; ignoring -nosttouch");
}
}
}
+15
View File
@@ -3149,6 +3149,21 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.type = OptionType::Bool,
.game_name = "Nostalgia",
.category = "Game Options",
.quick_setting_category = "Game",
},
{
// NostalgiaTouchMode
.title = "Nostalgia Touch Piano",
.name = "nosttouch",
.desc =
"Allows you to play the piano by touching the screen instead of a controller. "
"Use the mode switch button to toggle between interacting with the menu and playing the piano.\n\n"
"Velocity sensitivity is not supported. Touch targets will be pixel-perfect aligned with the "
"judgement line, key beams, and notes.",
.type = OptionType::Bool,
.game_name = "Nostalgia",
.category = "Game Options",
.quick_setting_category = "Game",
},
{
// ForceBackBufferCount
+1
View File
@@ -297,6 +297,7 @@ namespace launcher {
DDRP4IOBufferMode,
InputRequiresFocus,
NostalgiaPoke,
NostalgiaTouchMode,
ForceBackBufferCount,
SDVXWindowedSubscreenSize,
SDVXWindowedSubscreenPosition,