add card connect support (#923)

There are no servers to test this, but:

* touch, touch with mouse
* in theory card reader should work
* printer works (RGB, front and back)
* test/service button, lights

What is (painfully) missing:
* windowed mode

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
bicarus
2026-10-11 01:04:14 -07:00
committed by GitHub
parent cf5d87d4d5
commit fdc7adff7f
22 changed files with 1358 additions and 79 deletions
+68
View File
@@ -1527,6 +1527,14 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = std::invoke([]()
.game_name = "Museca",
.category = "Advanced Game Options",
};
c[launcher::Options::LoadCardConnectModule] = {
.title = "Force Load Card Connect Module",
.name = "cardconnect",
.desc = "Manually enable Card Connect module.",
.type = OptionType::Bool,
.game_name = "Card Connect",
.category = "Advanced Game Options",
};
c[launcher::Options::PathToModules] = {
.title = "Modules Folder Override",
.name = "modules",
@@ -2477,6 +2485,66 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = std::invoke([]()
.game_name = "DANCE aROUND",
.category = "Advanced Game Options",
};
c[launcher::Options::CardConnectArgs] = {
.title = "Card Connect Arguments Override",
.name = "cardconnectargs",
.desc = "Command line arguments passed to the game.",
.type = OptionType::Text,
.setting_name = "",
.game_name = "Card Connect",
.category = "Advanced Game Options",
};
c[launcher::Options::CardConnectNoPrinter] = {
.title = "Card Connect Disable Printer Emulation",
.name = "cardconnectnoprinter",
.desc = "Leave the native printer driver unhooked for use with a real printer.",
.type = OptionType::Bool,
.game_name = "Card Connect",
.category = "Cab Peripherals",
};
c[launcher::Options::CardConnectPrinterOutputPath] = {
.title = "Card Connect Printer Output Path",
.name = "cardconnectprinterpath",
.desc = "Folder for front/back color images. Defaults to the working directory.",
.type = OptionType::Text,
.game_name = "Card Connect",
.category = "Cab Peripherals",
.picker = OptionPickerType::DirectoryPath,
};
c[launcher::Options::CardConnectPrinterOutputClear] = {
.title = "Card Connect Printer Output Clear",
.name = "cardconnectprinterclear",
.desc = "Delete saved front/back images in the output directory on startup.",
.type = OptionType::Bool,
.game_name = "Card Connect",
.category = "Cab Peripherals",
};
c[launcher::Options::CardConnectPrinterOutputOverwrite] = {
.title = "Card Connect Printer Output Overwrite",
.name = "cardconnectprinteroverwrite",
.desc = "Always overwrite the same front/back image pair.",
.type = OptionType::Bool,
.game_name = "Card Connect",
.category = "Cab Peripherals",
};
c[launcher::Options::CardConnectPrinterOutputFormat] = {
.title = "Card Connect Printer Output Format",
.name = "cardconnectprinterformat",
.desc = "File format for printer output. Defaults to PNG.",
.type = OptionType::Text,
.setting_name = "(png/bmp/tga/jpg)",
.game_name = "Card Connect",
.category = "Cab Peripherals",
};
c[launcher::Options::CardConnectPrinterJPGQuality] = {
.title = "Card Connect Printer JPG Quality",
.name = "cardconnectprinterjpgquality",
.desc = "Quality setting in percent if JPG format is used.",
.type = OptionType::Integer,
.setting_name = "(1-100)",
.game_name = "Card Connect",
.category = "Cab Peripherals",
};
c[launcher::Options::spice2x_LightsOverallBrightness] = {
.title = "Lights Brightness Adjustment",
.name = "sp2x-lights-brightness",