gitadora: (arena model) simulate Realtek device, fix asio redirect hooks (#732)

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

## Description of change

Part 1)

When ASIO is in use, the game also looks for a Realtek device so that it
can open a WASAPI Exclusive mode stream for headphones.

Add an option to fake that, in case the user doesn't have a Realtek
device.

Part 2)

`-gdaasio` wasn't workign properly - fix the logic.

## Testing
Seems to work with FlexASIO, and Xonar with no real Realtek device.
This commit is contained in:
bicarus
2026-06-05 00:08:52 -07:00
committed by GitHub
parent 85058c2156
commit 2dae86a6f2
15 changed files with 504 additions and 8 deletions
+3
View File
@@ -687,6 +687,9 @@ int main_implementation(int argc, char *argv[]) {
if (options[launcher::Options::GitaDoraArenaAsioDriver].is_active()) {
games::gitadora::ASIO_DRIVER = options[launcher::Options::GitaDoraArenaAsioDriver].value_text();
}
if (options[launcher::Options::GitaDoraArenaFakeRealtekDevice].value_bool()) {
hooks::audio::FAKE_REALTEK_RENDER_DEVICE = true;
}
if (options[launcher::Options::LoadNostalgiaModule].value_bool()) {
attach_nostalgia = true;
}
+13 -1
View File
@@ -1207,12 +1207,24 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.desc = "For Arena Model: ASIO driver name to use in place of XONAR. "
"String should match a subkey under HKLM\\SOFTWARE\\ASIO\\\n\n"
"Requires 7.1 @ 48kHz; if the game rejects your ASIO device, it will automatically "
"fall back to using WASAPI.",
"fall back to using WASAPI.\n\n"
"If the game crashes after successful ASIO init, try enabling -gdafakerealtek.",
.type = OptionType::Text,
.game_name = "GitaDora",
.category = "Game Options",
.picker = OptionPickerType::AsioDriver,
},
{
// GitaDoraArenaFakeRealtekDevice
.title = "GitaDora Arena Fake Realtek Device",
.name = "gdafakerealtek",
.desc = "For Arena Model: inject a fake \"Realtek\" audio render device that discards all "
"audio sent to it. This is needed as the game crashes when ASIO is in use but Realtek "
"audio is not available. On an arcade cabinet, Realtek is used for headphone output.",
.type = OptionType::Bool,
.game_name = "GitaDora",
.category = "Game Options",
},
{
.title = "Force Load Jubeat Module",
.name = "jb",
+1
View File
@@ -117,6 +117,7 @@ namespace launcher {
GitaDoraArenaSingleWindow,
GitaDoraArenaWindowLayout,
GitaDoraArenaAsioDriver,
GitaDoraArenaFakeRealtekDevice,
LoadJubeatModule,
LoadReflecBeatModule,
LoadShogikaiModule,