gitadora: allow a landscape monitor to display subscreen (#899)

## Link to GitHub Issue or related Pull Request, if one exists
#0

## Description of change
Arena Model's SMALL touch subscreen is a portrait (800x1280) panel -
however, it's common for people to set up a touch screen in landscape
orientation since IIDX/SDVX/popn all use landscape.

Add a new option, `-gdsublandscape`, which forces the subscreen to
launch at 1080p landscape. The image is rendered with black bars on the
sides. Touches will be unaligned initially; user needs to go into test
mode and recalibrate. In reality this option is just a short hand for
`-forceressub 1920,1080`.

Wire up `-forceressub` which previously didn't work for gitadora, so
that a resolution other than 1080p can be used in either orientation. In
other games `-forceressub` just forces the rendering resolution and
IIDX/SDVX/popn's game engine automatically stretches to fill... however
for gitadora it works differently since we want to keep the aspect ratio
of the original screen; it instead hijacks the back buffer and makes the
game draw to an intermediate buffer.

## Testing
This commit is contained in:
bicarus
2026-08-29 19:09:56 -07:00
committed by GitHub
parent 67963389ef
commit 357e6c86f1
11 changed files with 344 additions and 32 deletions
+13
View File
@@ -3425,6 +3425,19 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.type = OptionType::Bool,
.category = "General Overlay",
},
{
// GitaDoraSubscreenLandscape
.title = "GitaDora Arena Landscape Subscreen (EXPERIMENTAL)",
.name = "gdsublandscape",
.desc = "For Arena Model full screen two-window mode: drive the SMALL touch subscreen "
"with a landscape monitor instead of a portrait one.\n\n"
"The portrait image is centered and black bars fill the space on either side.\n\n"
"Launches at 1920x1080; use -forceressub if you need a different resolution.",
.type = OptionType::Bool,
.game_name = "GitaDora",
.category = "Game Options",
.quick_setting_category = "Game",
},
};
const std::vector<std::string> &launcher::get_categories(Options::OptionsCategory category) {