gitadora: (arena model) unify window layout options (#706)

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

## Description of change
Combine the two layout options into one

## Testing

- [x] windowed, x4
- [x] windowed, x2
- [x] windowed, x1 with sub
- [x] fs
This commit is contained in:
bicarus
2026-05-27 21:04:23 -07:00
committed by GitHub
parent febc02b50b
commit a2e220d3f4
12 changed files with 92 additions and 63 deletions
+49 -15
View File
@@ -27,6 +27,7 @@ namespace games::gitadora {
bool P2_LEFTY = false; bool P2_LEFTY = false;
std::optional<std::string> SUBSCREEN_OVERLAY_SIZE; std::optional<std::string> SUBSCREEN_OVERLAY_SIZE;
std::optional<socd::SocdAlgorithm> PICK_ALGO = socd::SocdAlgorithm::PreferRecent; std::optional<socd::SocdAlgorithm> PICK_ALGO = socd::SocdAlgorithm::PreferRecent;
std::optional<uint8_t> ARENA_WINDOW_COUNT = std::nullopt;
/* /*
* Prevent GitaDora from creating folders on F drive * Prevent GitaDora from creating folders on F drive
@@ -223,12 +224,6 @@ namespace games::gitadora {
} }
#endif #endif
// arena model launches a tiny window yet backbuffer at 4k, resulting in unusable overlay
// force scaling to make things usable
if (!overlay::UI_SCALE_PERCENT.has_value() && is_arena_model() && !cfg::CONFIGURATOR_STANDALONE) {
overlay::UI_SCALE_PERCENT = 250;
}
// for guitar wail SOCD cleaning // for guitar wail SOCD cleaning
socd::ALGORITHM = socd::SocdAlgorithm::PreferRecent; socd::ALGORITHM = socd::SocdAlgorithm::PreferRecent;
@@ -241,14 +236,46 @@ namespace games::gitadora {
#if SPICE64 && !SPICE_XP #if SPICE64 && !SPICE_XP
if (is_arena_model() && !GRAPHICS_WINDOWED && !GRAPHICS_FORCE_SINGLE_ADAPTER) { if (is_arena_model()) {
const auto &monitors = sysutils::enumerate_monitors(); // in full screen, if single-adapter option is checked, it's functionally
const size_t active_count = monitors.size(); // the same as forcing a single monitor
log_info("gitadora", "arena model: detected {} active monitor(s)", active_count); if (!GRAPHICS_WINDOWED && GRAPHICS_FORCE_SINGLE_ADAPTER) {
if (active_count < 4) { ARENA_WINDOW_COUNT = 1;
log_info("gitadora", "arena model: enable single monitor mode due to insufficient monitors"); }
GRAPHICS_FORCE_SINGLE_ADAPTER = true;
GRAPHICS_PREVENT_SECONDARY_WINDOW = true; // figure out default settings if user didn't provide one
if (!ARENA_WINDOW_COUNT.has_value()) {
if (!GRAPHICS_WINDOWED && sysutils::enumerate_monitors().size() < 4) {
log_info("gitadora", "arena model: <4 monitors, defaulting to single window mode");
ARENA_WINDOW_COUNT = 1;
} else {
ARENA_WINDOW_COUNT = 4;
}
}
const int count = ARENA_WINDOW_COUNT.value();
switch (count) {
case 1:
log_info("gitadora", "arena model: single-window mode");
GRAPHICS_FORCE_SINGLE_ADAPTER = true;
GRAPHICS_PREVENT_SECONDARY_WINDOWS = true;
break;
case 2:
if (!GRAPHICS_WINDOWED) {
log_fatal(
"gitadora",
"arena model: 2-window mode is not supported in fullscreen, choose 1 or 4");
}
log_info("gitadora", "arena model: two-window mode");
GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS = true;
break;
case 4:
log_info("gitadora", "arena model: four-window mode");
break;
default:
log_fatal(
"gitadora",
"arena model: unsupported window count: {}", count);
} }
} }
@@ -527,6 +554,13 @@ namespace games::gitadora {
void GitaDoraGame::attach() { void GitaDoraGame::attach() {
Game::attach(); Game::attach();
// arena model launches a tiny window yet backbuffer at 4k, resulting in unusable overlay
// force scaling to make things usable
if (!overlay::UI_SCALE_PERCENT.has_value() && is_arena_model()) {
log_info("gitadora", "forcing UI scale to 250% for arena model");
overlay::UI_SCALE_PERCENT = 250;
}
// modules // modules
HMODULE sharepj_module = libutils::try_module("libshare-pj.dll"); HMODULE sharepj_module = libutils::try_module("libshare-pj.dll");
HMODULE bmsd2_module = libutils::try_module("libbmsd2.dll"); HMODULE bmsd2_module = libutils::try_module("libbmsd2.dll");
@@ -582,7 +616,7 @@ namespace games::gitadora {
hooks::audio::mme::init(avs::game::DLL_INSTANCE); hooks::audio::mme::init(avs::game::DLL_INSTANCE);
// monitor/touch hooks (windowed or full screen) // monitor/touch hooks (windowed or full screen)
if (GRAPHICS_FORCE_SINGLE_ADAPTER || GRAPHICS_PREVENT_SECONDARY_WINDOW) { if (GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
// enable touch hook for subscreen overlay // enable touch hook for subscreen overlay
wintouchemu::FORCE = true; wintouchemu::FORCE = true;
wintouchemu::INJECT_MOUSE_AS_WM_TOUCH = true; wintouchemu::INJECT_MOUSE_AS_WM_TOUCH = true;
+1
View File
@@ -15,6 +15,7 @@ namespace games::gitadora {
extern bool P2_LEFTY; extern bool P2_LEFTY;
extern std::optional<std::string> SUBSCREEN_OVERLAY_SIZE; extern std::optional<std::string> SUBSCREEN_OVERLAY_SIZE;
extern std::optional<socd::SocdAlgorithm> PICK_ALGO; extern std::optional<socd::SocdAlgorithm> PICK_ALGO;
extern std::optional<uint8_t> ARENA_WINDOW_COUNT;
class GitaDoraGame : public games::Game { class GitaDoraGame : public games::Game {
public: public:
@@ -718,7 +718,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDirect3D9::GetDeviceCaps(UINT Adapter, D3DDEVT
} }
// in windowed mode, LDJ will always launch two windows, no special handling needed here // in windowed mode, LDJ will always launch two windows, no special handling needed here
} else if (avs::game::is_model("KFC")) { } else if (avs::game::is_model("KFC")) {
if (GRAPHICS_WINDOWED && GRAPHICS_PREVENT_SECONDARY_WINDOW) { if (GRAPHICS_WINDOWED && GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
// user wants windowed mode but does not want subscreen at all // user wants windowed mode but does not want subscreen at all
pCaps->NumberOfAdaptersInGroup = 1; pCaps->NumberOfAdaptersInGroup = 1;
} else { } else {
@@ -1480,9 +1480,7 @@ void graphics_d3d9_on_present(
// for IIDX TDJ / SDVX UFC, handle subscreen // for IIDX TDJ / SDVX UFC, handle subscreen
const bool is_vm = games::sdvx::is_valkyrie_model(); const bool is_vm = games::sdvx::is_valkyrie_model();
const bool is_tdj = avs::game::is_model("LDJ") && games::iidx::TDJ_MODE; const bool is_tdj = avs::game::is_model("LDJ") && games::iidx::TDJ_MODE;
const bool is_gfdm_arena = games::gitadora::is_arena_model() && const bool is_gfdm_arena = games::gitadora::is_arena_model() && GRAPHICS_PREVENT_SECONDARY_WINDOWS;
(GRAPHICS_FORCE_SINGLE_ADAPTER || GRAPHICS_PREVENT_SECONDARY_WINDOW);
const bool is_pika = games::popn::is_pikapika_model(); const bool is_pika = games::popn::is_pikapika_model();
if (is_vm || is_tdj || is_gfdm_arena || is_pika) { if (is_vm || is_tdj || is_gfdm_arena || is_pika) {
graphics_d3d9_ldj_on_present(wrapped_device); graphics_d3d9_ldj_on_present(wrapped_device);
@@ -260,9 +260,8 @@ HRESULT STDMETHODCALLTYPE WrappedIDirect3DDevice9::CreateAdditionalSwapChain(
create_swap_chain = true; create_swap_chain = true;
} else if (games::gitadora::is_arena_model() && } else if (games::gitadora::is_arena_model() &&
(GRAPHICS_FORCE_SINGLE_ADAPTER || (GRAPHICS_PREVENT_SECONDARY_WINDOWS || GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS)) {
GRAPHICS_PREVENT_SECONDARY_WINDOW ||
GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS)) {
if (pPresentationParameters->BackBufferWidth == 800) { if (pPresentationParameters->BackBufferWidth == 800) {
// SMALL (subscreen) // SMALL (subscreen)
create_swap_chain = true; create_swap_chain = true;
@@ -275,7 +274,7 @@ HRESULT STDMETHODCALLTYPE WrappedIDirect3DDevice9::CreateAdditionalSwapChain(
index = 2; index = 2;
} }
create_fake_swap_chain = GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS && create_fake_swap_chain = GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS &&
!GRAPHICS_PREVENT_SECONDARY_WINDOW; !GRAPHICS_PREVENT_SECONDARY_WINDOWS;
} else { } else {
log_warning("graphics::d3d9", "unknown swap chain detected in CreateAdditionalSwapChain"); log_warning("graphics::d3d9", "unknown swap chain detected in CreateAdditionalSwapChain");
} }
+5 -5
View File
@@ -78,7 +78,7 @@ UINT GRAPHICS_FORCE_REFRESH = 0;
std::optional<uint32_t> GRAPHICS_FORCE_REFRESH_SUB; std::optional<uint32_t> GRAPHICS_FORCE_REFRESH_SUB;
std::optional<int> GRAPHICS_FORCE_VSYNC_BUFFER; std::optional<int> GRAPHICS_FORCE_VSYNC_BUFFER;
bool GRAPHICS_FORCE_SINGLE_ADAPTER = false; bool GRAPHICS_FORCE_SINGLE_ADAPTER = false;
bool GRAPHICS_PREVENT_SECONDARY_WINDOW = false; bool GRAPHICS_PREVENT_SECONDARY_WINDOWS = false;
bool GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS = false; bool GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS = false;
graphics_dx9on12_state GRAPHICS_9_ON_12_STATE = DX9ON12_AUTO; graphics_dx9on12_state GRAPHICS_9_ON_12_STATE = DX9ON12_AUTO;
bool GRAPHICS_9_ON_12_REQUESTED_BY_GAME = false; bool GRAPHICS_9_ON_12_REQUESTED_BY_GAME = false;
@@ -426,7 +426,7 @@ static HWND WINAPI CreateWindowExA_hook(DWORD dwExStyle, LPCSTR lpClassName, LPC
} }
// only hook touch window if multiple windows are allowed // only hook touch window if multiple windows are allowed
if (is_gfdm_sub_window && GRAPHICS_WINDOWED && !GRAPHICS_PREVENT_SECONDARY_WINDOW) { if (is_gfdm_sub_window && GRAPHICS_WINDOWED && !GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
GFDM_SUBSCREEN_WINDOW = result; GFDM_SUBSCREEN_WINDOW = result;
graphics_hook_subscreen_window(GFDM_SUBSCREEN_WINDOW); graphics_hook_subscreen_window(GFDM_SUBSCREEN_WINDOW);
} }
@@ -439,7 +439,7 @@ static HWND WINAPI CreateWindowExA_hook(DWORD dwExStyle, LPCSTR lpClassName, LPC
if (is_popn_sub_window) { if (is_popn_sub_window) {
POPN_SUBSCREEN_WINDOW = result; POPN_SUBSCREEN_WINDOW = result;
if (!GRAPHICS_PREVENT_SECONDARY_WINDOW) { if (!GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
graphics_hook_subscreen_window(POPN_SUBSCREEN_WINDOW); graphics_hook_subscreen_window(POPN_SUBSCREEN_WINDOW);
} }
} }
@@ -713,7 +713,7 @@ static BOOL WINAPI SetWindowPos_hook(HWND hWnd, HWND hWndInsertAfter,
static BOOL WINAPI ShowWindow_hook(HWND hWnd, int nCmdShow) { static BOOL WINAPI ShowWindow_hook(HWND hWnd, int nCmdShow) {
if (games::gitadora::is_arena_model() && if (games::gitadora::is_arena_model() &&
GRAPHICS_PREVENT_SECONDARY_WINDOW && GRAPHICS_PREVENT_SECONDARY_WINDOWS &&
hWnd != GRAPHICS_HOOKED_WINDOW) { hWnd != GRAPHICS_HOOKED_WINDOW) {
log_info("graphics", "ShowWindow_hook - hiding sub window {}", fmt::ptr(hWnd)); log_info("graphics", "ShowWindow_hook - hiding sub window {}", fmt::ptr(hWnd));
return true; return true;
@@ -727,7 +727,7 @@ static BOOL WINAPI ShowWindow_hook(HWND hWnd, int nCmdShow) {
} }
if (games::popn::is_pikapika_model() && if (games::popn::is_pikapika_model() &&
GRAPHICS_PREVENT_SECONDARY_WINDOW && GRAPHICS_PREVENT_SECONDARY_WINDOWS &&
hWnd == POPN_SUBSCREEN_WINDOW) { hWnd == POPN_SUBSCREEN_WINDOW) {
log_info("graphics", "ShowWindow_hook - hiding sub window {}", fmt::ptr(hWnd)); log_info("graphics", "ShowWindow_hook - hiding sub window {}", fmt::ptr(hWnd));
return true; return true;
+1 -1
View File
@@ -38,7 +38,7 @@ extern UINT GRAPHICS_FORCE_REFRESH;
extern std::optional<uint32_t> GRAPHICS_FORCE_REFRESH_SUB; extern std::optional<uint32_t> GRAPHICS_FORCE_REFRESH_SUB;
extern std::optional<int> GRAPHICS_FORCE_VSYNC_BUFFER; extern std::optional<int> GRAPHICS_FORCE_VSYNC_BUFFER;
extern bool GRAPHICS_FORCE_SINGLE_ADAPTER; extern bool GRAPHICS_FORCE_SINGLE_ADAPTER;
extern bool GRAPHICS_PREVENT_SECONDARY_WINDOW; extern bool GRAPHICS_PREVENT_SECONDARY_WINDOWS;
extern bool GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS; extern bool GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS;
extern std::optional<std::pair<uint32_t, uint32_t>> GRAPHICS_FS_CUSTOM_RESOLUTION; extern std::optional<std::pair<uint32_t, uint32_t>> GRAPHICS_FS_CUSTOM_RESOLUTION;
extern std::optional<std::pair<uint32_t, uint32_t>> GRAPHICS_FS_CUSTOM_RESOLUTION_SUB; extern std::optional<std::pair<uint32_t, uint32_t>> GRAPHICS_FS_CUSTOM_RESOLUTION_SUB;
+15 -20
View File
@@ -375,7 +375,7 @@ int main_implementation(int argc, char *argv[]) {
} }
if (options[launcher::Options::spice2x_SDVXNoSub].value_bool()) { if (options[launcher::Options::spice2x_SDVXNoSub].value_bool()) {
GRAPHICS_FORCE_SINGLE_ADAPTER = true; GRAPHICS_FORCE_SINGLE_ADAPTER = true;
GRAPHICS_PREVENT_SECONDARY_WINDOW = true; GRAPHICS_PREVENT_SECONDARY_WINDOWS = true;
} }
if (options[launcher::Options::DXDisplayAdapter].is_active() && if (options[launcher::Options::DXDisplayAdapter].is_active() &&
options[launcher::Options::DXDisplayAdapter].value_uint32() != D3DADAPTER_DEFAULT) { options[launcher::Options::DXDisplayAdapter].value_uint32() != D3DADAPTER_DEFAULT) {
@@ -628,7 +628,7 @@ int main_implementation(int argc, char *argv[]) {
} }
if (options[launcher::Options::PopnNoSub].value_bool()) { if (options[launcher::Options::PopnNoSub].value_bool()) {
GRAPHICS_FORCE_SINGLE_ADAPTER = true; GRAPHICS_FORCE_SINGLE_ADAPTER = true;
GRAPHICS_PREVENT_SECONDARY_WINDOW = true; GRAPHICS_PREVENT_SECONDARY_WINDOWS = true;
} }
if (options[launcher::Options::PopnSubMonitorOverride].is_active()) { if (options[launcher::Options::PopnSubMonitorOverride].is_active()) {
sysutils::SECOND_MONITOR_OVERRIDE = options[launcher::Options::PopnSubMonitorOverride].value_text(); sysutils::SECOND_MONITOR_OVERRIDE = options[launcher::Options::PopnSubMonitorOverride].value_text();
@@ -645,27 +645,22 @@ int main_implementation(int argc, char *argv[]) {
if (options[launcher::Options::GitaDoraCabinetType].is_active()) { if (options[launcher::Options::GitaDoraCabinetType].is_active()) {
games::gitadora::CAB_TYPE = options[launcher::Options::GitaDoraCabinetType].value_uint32(); games::gitadora::CAB_TYPE = options[launcher::Options::GitaDoraCabinetType].value_uint32();
} }
if (options[launcher::Options::GitaDoraArenaWindowLayout].is_active()) {
if (GRAPHICS_WINDOWED) { // gitadora arena layout
const auto window_count = options[launcher::Options::GitaDoraArenaWindowLayout].value_uint32();
if (window_count == 1) {
GRAPHICS_PREVENT_SECONDARY_WINDOW = true;
} else if (window_count == 2) {
GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS = true;
}
} else {
log_warning("launcher", "-gdawindows only applies with -w; ignoring GitaDora Arena windowed layout");
}
}
if (options[launcher::Options::GitaDoraArenaSingleWindow].value_bool()) { if (options[launcher::Options::GitaDoraArenaSingleWindow].value_bool()) {
if (GRAPHICS_WINDOWED) { games::gitadora::ARENA_WINDOW_COUNT = 1;
GRAPHICS_PREVENT_SECONDARY_WINDOW = true; }
GRAPHICS_GITADORA_HIDE_SIDE_WINDOWS = false; if (options[launcher::Options::GitaDoraArenaWindowLayout].is_active()) {
} else { const auto window_count = options[launcher::Options::GitaDoraArenaWindowLayout].value_text();
GRAPHICS_FORCE_SINGLE_ADAPTER = true; if (window_count == "1") {
GRAPHICS_PREVENT_SECONDARY_WINDOW = true; games::gitadora::ARENA_WINDOW_COUNT = 1;
} else if (window_count == "2") {
games::gitadora::ARENA_WINDOW_COUNT = 2;
} else if (window_count == "4") {
games::gitadora::ARENA_WINDOW_COUNT = 4;
} }
} }
if (options[launcher::Options::GitaDoraWailHold].is_active()) { if (options[launcher::Options::GitaDoraWailHold].is_active()) {
socd::TILT_HOLD_MS = options[launcher::Options::GitaDoraWailHold].value_uint32(); socd::TILT_HOLD_MS = options[launcher::Options::GitaDoraWailHold].value_uint32();
} }
+12 -10
View File
@@ -1094,32 +1094,34 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
}, },
{ {
// GitaDoraArenaSingleWindow // GitaDoraArenaSingleWindow
.title = "GitaDora Arena Disable Subscreens (EXPERIMENTAL)", .title = "GitaDora Arena Disable Subscreens (DEPRECATED - use -gdawindows)",
.name = "gdaonewindow", .name = "gdaonewindow",
.desc = "For Arena Model:\n\n" .desc = "DEPRECATED - use -gdawindows.\n\n"
"For Arena Model:\n\n"
"Windowed mode: instead of 4 windows, create 1 window.\n\n" "Windowed mode: instead of 4 windows, create 1 window.\n\n"
"Fullscreen mode: instead of requiring 4 monitors, use only the primary monitor. WARNING: requires 4K monitor.\n\n" "Fullscreen mode: instead of requiring 4 monitors, use only the primary monitor. WARNING: requires 4K monitor.\n\n"
"To access the subscreen, use the subscreen overlay.", "To access the subscreen, use the subscreen overlay.",
.type = OptionType::Bool, .type = OptionType::Bool,
.hidden = true,
.game_name = "GitaDora", .game_name = "GitaDora",
.category = "Game Options", .category = "Game Options",
}, },
{ {
// GitaDoraArenaWindowLayout // GitaDoraArenaWindowLayout
.title = "GitaDora Arena Windowed Layout (EXPERIMENTAL)", .title = "GitaDora Arena Layout (EXPERIMENTAL)",
.name = "gdawindows", .name = "gdalayout",
.desc = "For Arena Model windowed mode (-w): select how many windows to create.\n\n" .desc = "For Arena Model: select how many windows to create.\n\n"
"4 windows: main + LEFT + RIGHT + SMALL.\n\n"
"2 windows: main + SMALL.\n\n"
"1 window: main only; use the subscreen overlay for SMALL.\n\n" "1 window: main only; use the subscreen overlay for SMALL.\n\n"
"Ignored in fullscreen mode.", "2 windows: main + SMALL. Note: currently only works for windowed mode, broken for fullscreen.\n\n"
"4 windows: main + LEFT + RIGHT + SMALL. Fullscreen requires exactly 4 monitors in the "
"right resolution; see wiki for details.",
.type = OptionType::Enum, .type = OptionType::Enum,
.game_name = "GitaDora", .game_name = "GitaDora",
.category = "Game Options", .category = "Game Options",
.elements = { .elements = {
{"4", "4 windows"},
{"2", "2 windows"},
{"1", "1 window"}, {"1", "1 window"},
{"2", "2 windows"},
{"4", "4 windows"}
}, },
}, },
{ {
+1 -1
View File
@@ -416,7 +416,7 @@ namespace wintouchemu {
// same as iidx case above // same as iidx case above
log_info("wintouchemu", "use mouse cursor API for popn overlay subscreen"); log_info("wintouchemu", "use mouse cursor API for popn overlay subscreen");
USE_MOUSE = true; USE_MOUSE = true;
} else if (games::gitadora::is_arena_model() && GRAPHICS_PREVENT_SECONDARY_WINDOW) { } else if (games::gitadora::is_arena_model() && GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
log_info("wintouchemu", "use mouse cursor API for gitadora overlay subscreen"); log_info("wintouchemu", "use mouse cursor API for gitadora overlay subscreen");
USE_MOUSE = true; USE_MOUSE = true;
} else { } else {
+1 -1
View File
@@ -11,7 +11,7 @@ namespace overlay::windows {
if (!games::gitadora::is_arena_model()) { if (!games::gitadora::is_arena_model()) {
this->disabled_message = "Requires Arena Model!"; this->disabled_message = "Requires Arena Model!";
} else if (!GRAPHICS_PREVENT_SECONDARY_WINDOW) { } else if (!GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
if (GRAPHICS_WINDOWED) { if (GRAPHICS_WINDOWED) {
this->disabled_message = "Use the dedicated subscreen window!"; this->disabled_message = "Use the dedicated subscreen window!";
} else { } else {
+1 -1
View File
@@ -15,7 +15,7 @@ namespace overlay::windows {
this->disabled_message = "Game did not launch as Pikapika Pop-kun (invalid <spec>)!"; this->disabled_message = "Game did not launch as Pikapika Pop-kun (invalid <spec>)!";
} else if (games::popn::SHOW_PIKA_MONITOR_WARNING) { } else if (games::popn::SHOW_PIKA_MONITOR_WARNING) {
this->disabled_message = "Subscreen overlay is not compatible with -dxmainadapter option, use -mainmonitor instead"; this->disabled_message = "Subscreen overlay is not compatible with -dxmainadapter option, use -mainmonitor instead";
} else if (GRAPHICS_WINDOWED && !GRAPHICS_PREVENT_SECONDARY_WINDOW) { } else if (GRAPHICS_WINDOWED && !GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
this->disabled_message = "Subscren overlay was not enabled in spicecfg. Use the second window (ALT+TAB)."; this->disabled_message = "Subscren overlay was not enabled in spicecfg. Use the second window (ALT+TAB).";
} }
+1 -1
View File
@@ -15,7 +15,7 @@ namespace overlay::windows {
} else if (games::sdvx::SHOW_VM_MONITOR_WARNING) { } else if (games::sdvx::SHOW_VM_MONITOR_WARNING) {
this->disabled_message = "VM mode subscreen overlay is not compatible with -dxmainadapter option, use -mainmonitor instead"; this->disabled_message = "VM mode subscreen overlay is not compatible with -dxmainadapter option, use -mainmonitor instead";
} else if (GRAPHICS_WINDOWED) { } else if (GRAPHICS_WINDOWED) {
if (GRAPHICS_PREVENT_SECONDARY_WINDOW) { if (GRAPHICS_PREVENT_SECONDARY_WINDOWS) {
this->disabled_message = "Subscreen has been disabled by the user (-sdvxnosub)."; this->disabled_message = "Subscreen has been disabled by the user (-sdvxnosub).";
} else { } else {
this->disabled_message = "Overlay unavailable in windowed mode! Use the second window instead. (ALT+TAB)"; this->disabled_message = "Overlay unavailable in windowed mode! Use the second window instead. (ALT+TAB)";