loveplus: enable cam access (#318)

## Link to GitHub Issue, if one exists
#316 
(this does not fix the issue!)

## Description of change
Add an option to omit `-noCamera` option. Doing so allows the game to
boot and search for a compatible camera using KS API, but will likely
fail since we don't know what cameras are compatible. You end up with a
camera error during boot, which can be ignored by flipping a switch in
the test menu to disable the camera.

No hooks are currently done to make the camera work!

## Testing
Tested to see that turning this on triggers the camera error. No known
camera at the moment.
This commit is contained in:
bicarus-dev
2025-05-07 20:43:16 -07:00
committed by GitHub
parent 26ea8a1b92
commit 621b702ed4
5 changed files with 25 additions and 3 deletions
+9 -3
View File
@@ -13,6 +13,8 @@
namespace games::loveplus {
bool CAMERA_ENABLE = false;
// touch stuff
static bool TOUCH_ENABLE = false;
static bool TOUCH_ATTACHED = false;
@@ -117,9 +119,13 @@ namespace games::loveplus {
}
static LPSTR __stdcall GetCommandLineA_hook() {
static std::string lp_args = "-win -noCamera -noWatchDog -noIOError -noIrda -notarget";
return lp_args.data();
static std::string lp_args = "-win -noWatchDog -noIOError -noIrda -notarget";
static std::string lp_args_nocamera = lp_args + " -noCamera";
if (CAMERA_ENABLE) {
return lp_args.data();
} else {
return lp_args_nocamera.data();
}
}
LovePlusGame::LovePlusGame() : Game("LovePlus") {
+2
View File
@@ -4,6 +4,8 @@
namespace games::loveplus {
extern bool CAMERA_ENABLE;
// touch stuff
void touch_update();
+4
View File
@@ -1109,6 +1109,10 @@ int main_implementation(int argc, char *argv[]) {
rawinput::MIDI_NOTE_SUSTAIN = options[launcher::Options::MidiNoteSustain].value_uint32();
}
if (options[launcher::Options::LovePlusCamEnable].value_bool()) {
games::loveplus::CAMERA_ENABLE = true;
}
// API debugging
if (api_debug && !cfg::CONFIGURATOR_STANDALONE) {
API_CONTROLLER = std::make_unique<api::Controller>(api_port, api_pass, api_pretty);
+9
View File
@@ -2249,6 +2249,15 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.type = OptionType::Bool,
.game_name = "Sound Voltex",
.category = "Graphics (Windowed)",
},
{
// LovePlusCamEnable
.title = "LovePlus Camera Enable",
.name = "lovepluscam",
.desc = "Allow game to access camera; camera must be compatible with game",
.type = OptionType::Bool,
.game_name = "LovePlus",
.category = "Game Options",
}
};
+1
View File
@@ -240,6 +240,7 @@ namespace launcher {
SDVXWindowedSubscreenPosition,
SDVXWindowedSubscreenBorderless,
SDVXWindowedSubscreenAlwaysOnTop,
LovePlusCamEnable,
};
enum class OptionsCategory {