diff --git a/src/spice2x/games/iidx/iidx.cpp b/src/spice2x/games/iidx/iidx.cpp index 0e4baa3..97018b7 100644 --- a/src/spice2x/games/iidx/iidx.cpp +++ b/src/spice2x/games/iidx/iidx.cpp @@ -451,7 +451,7 @@ namespace games::iidx { "!!! please do the following instead: !!!\n" "!!! !!!\n" "!!! Revert your changes to XML file so it says !!!\n" - "!!! LDJ !!!\n" + "!!! LDJ !!!\n" "!!! !!!\n" "!!! In SpiceCfg, enable 'IIDX TDJ Mode' or provide -iidxtdj flag !!!\n" "!!! in command line !!!\n" @@ -463,6 +463,32 @@ namespace games::iidx { log_fatal("iidx", "BAD MODEL NAME ERROR - TDJ specified, must be LDJ instead"); } + + // check -monitor + TDJ mode + if (!GRAPHICS_WINDOWED && + options->at(launcher::Options::DisplayAdapter).is_active() && + TDJ_MODE) { + log_warning( + "iidx", + "\n\n!!! using -monitor option with TDJ is NOT recommended due to known !!!\n" + "!!! compatibility issues with the game !!!\n" + "!!! !!!\n" + "!!! * game may launch in wrong resolution or refresh rate !!!\n" + "!!! * touch / mouse input may stop working in subscreen / overlay !!!\n" + "!!! !!!\n" + "!!! recommendation is to NOT use -monitor and instead set the !!!\n" + "!!! primary monitor in Windows settings before launching the game !!!\n\n" + ); + + deferredlogs::defer_error_messages({ + "-monitor option is NOT recommended when running with TDJ mode", + " due to known compatibility issues with the game:", + " * game may launch in wrong resolution or refresh rate", + " * touch / mouse input may stop working in subscreen / overlay", + " recommended fix is to NOT use -monitor and instead set the primary", + " monitor in Windows settings before launching the game" + }); + } } void IIDXGame::detach() { diff --git a/src/spice2x/games/sdvx/sdvx.cpp b/src/spice2x/games/sdvx/sdvx.cpp index 7bae398..e25eae7 100644 --- a/src/spice2x/games/sdvx/sdvx.cpp +++ b/src/spice2x/games/sdvx/sdvx.cpp @@ -4,6 +4,7 @@ #include "avs/game.h" #include "games/shared/lcdhandle.h" +#include "games/io.h" #include "hooks/audio/audio.h" #include "hooks/graphics/graphics.h" #include "hooks/devicehook.h" @@ -12,6 +13,7 @@ #include "hooks/powrprof.h" #include "hooks/sleephook.h" #include "hooks/winuser.h" +#include "launcher/options.h" #include "touch/touch.h" #include "util/deferlog.h" #include "util/detour.h" @@ -290,7 +292,38 @@ namespace games::sdvx { log_fatal( "sdvx", "BAD MODEL NAME ERROR - model name set to UFC, must be KFC instead"); - } + } + +#ifdef SPICE64 // SDVX5+ specific code + bool isValkyrieCabinetMode = avs::game::SPEC[0] == 'G' || avs::game::SPEC[0] == 'H'; + auto options = games::get_options(eamuse_get_game()); + // check -monitor + UFC mode + if (!GRAPHICS_WINDOWED && + options->at(launcher::Options::DisplayAdapter).is_active() && + isValkyrieCabinetMode) { + log_warning( + "sdvx", + "\n\n!!! using -monitor option with VM mode is NOT recommended due to !!!\n" + "!!! known compatibility issues with the game !!!\n" + "!!! !!!\n" + "!!! * game may launch in wrong resolution or refresh rate !!!\n" + "!!! * touch / mouse input may stop working in subscreen / overlay !!!\n" + "!!! !!!\n" + "!!! recommendation is to NOT use -monitor and instead set the !!!\n" + "!!! primary monitor in Windows settings before launching the game !!!\n\n" + ); + + deferredlogs::defer_error_messages({ + "-monitor option is NOT recommended when running with Valkyrie mode", + " due to known compatibility issues with the game:", + " * game may launch in wrong resolution or refresh rate", + " * touch / mouse input may stop working in subscreen / overlay", + " recommended fix is to NOT use -monitor and instead set the primary", + " monitor in Windows settings before launching the game" + }); + } +#endif + } void SDVXGame::attach() {