mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 22:30:42 -07:00
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:
@@ -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");
|
}
|
||||||
|
|
||||||
|
// 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_FORCE_SINGLE_ADAPTER = true;
|
||||||
GRAPHICS_PREVENT_SECONDARY_WINDOW = 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;
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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).";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)";
|
||||||
|
|||||||
Reference in New Issue
Block a user