From d4e51b77d1d41617acbb4ad4f00b724936d3a6ab Mon Sep 17 00:00:00 2001 From: bicarus <202771338+bicarus-dev@users.noreply.github.com> Date: Tue, 20 Jan 2026 00:24:40 -0800 Subject: [PATCH] overlay: options tab tooltip formatting consistency (#526) --- src/spice2x/launcher/options.cpp | 450 +++++++++++++++---------------- 1 file changed, 225 insertions(+), 225 deletions(-) diff --git a/src/spice2x/launcher/options.cpp b/src/spice2x/launcher/options.cpp index 0677711..19acc2d 100644 --- a/src/spice2x/launcher/options.cpp +++ b/src/spice2x/launcher/options.cpp @@ -76,7 +76,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Open Configurator", .name = "cfg", .desc = "Opens configuration window. This can only be launched via the command line " - "(spice -cfg or spice64 -cfg) or just launch spicecfg.exe", + "(spice -cfg or spice64 -cfg) or just launch spicecfg.exe.", .type = OptionType::Bool, .hidden = true, .disabled = true, @@ -84,7 +84,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "(REMOVED) Open KFControl", .name = "kfcontrol", - .desc = "This feature has been removed; please use an older version", + .desc = "This feature has been removed; please use an older version.", .type = OptionType::Bool, .hidden = true, .disabled = true, @@ -92,7 +92,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Basic Local EA Emulation", .name = "ea", - .desc = "Enables the integrated local EA server, just enough to boot the game; no card in, no data saving", + .desc = "Enables the integrated local EA server, just enough to boot the game; no card in, no data saving.", .type = OptionType::Bool, .category = "Network", }, @@ -100,14 +100,14 @@ static const std::vector OPTION_DEFINITIONS = { // ServiceURL .title = "EA Service URL", .name = "url", - .desc = "Sets a custom service URL override", + .desc = "Sets a custom service URL override.", .type = OptionType::Text, .category = "Network", }, { .title = "PCBID", .name = "p", - .desc = "Sets a custom PCBID override", + .desc = "Sets a custom PCBID override.", .type = OptionType::Text, .setting_name = "04040000000000000000", .category = "Network", @@ -135,7 +135,7 @@ static const std::vector OPTION_DEFINITIONS = { // Player1PinMacro .title = "Player 1 PIN Macro", .name = "pinmacro0", - .desc = "Set a PIN for Player 1 that will cause the PIN to be automatically typed when Player 1 PIN Macro overlay key is pressed", + .desc = "Set a PIN for Player 1 that will cause the PIN to be automatically typed when Player 1 PIN Macro overlay key is pressed.", .type = OptionType::Text, .setting_name = "1234", .category = "Network (Advanced)", @@ -145,7 +145,7 @@ static const std::vector OPTION_DEFINITIONS = { // Player2PinMacro .title = "Player 2 PIN Macro", .name = "pinmacro1", - .desc = "Set a PIN for Player 2 that will cause the PIN to be automatically typed when Player 2 PIN Macro overlay key is pressed", + .desc = "Set a PIN for Player 2 that will cause the PIN to be automatically typed when Player 2 PIN Macro overlay key is pressed.", .type = OptionType::Text, .setting_name = "5678", .category = "Network (Advanced)", @@ -154,7 +154,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Windowed Mode", .name = "w", - .desc = "Enables windowed mode", + .desc = "Enables windowed mode.", .type = OptionType::Bool, .category = "Graphics (Windowed)", }, @@ -164,7 +164,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "k", .desc = "Multiple files are allowed; use multiple -k flags, or in SpiceCfg, separate by " "space (foo.dll bar.dll baz.dll). Injects a hook by using LoadLibrary on the " - "specified file before running the main game code", + "specified file before running the main game code.", .type = OptionType::Text, .setting_name = "a.dll b.dll c.dll", .category = "Common", @@ -174,7 +174,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Inject Early DLL Hooks", .name = "z", .desc = "Equivalent to 'Inject DLL Hooks' option, but ensures hooks are injected before " - "the game module has been loaded into the process", + "the game module has been loaded into the process.", .type = OptionType::Text, .setting_name = "a.dll b.dll c.dll", .category = "Common", @@ -182,7 +182,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "(REMOVED) Execute Lua Script", .name = "script", - .desc = "This feature has been removed", + .desc = "This feature has been removed.", .type = OptionType::Text, .hidden = true, .category = "Miscellaneous", @@ -191,14 +191,14 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Lock Cursor to Window", .name = "c", - .desc = "Confines the cursor to be within the game window", + .desc = "Confines the cursor to be within the game window.", .type = OptionType::Bool, .category = "Common", }, { .title = "Show Cursor & Touch Emulation Enable", .name = "s", - .desc = "Shows the cursor in the game window; also turns on touch emulation. Do not use if you use a real touch screen", + .desc = "Shows the cursor in the game window; also turns on touch emulation. Do not use if you use a real touch screen.", .type = OptionType::Bool, .category = "Common", }, @@ -208,7 +208,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Sets the display that the game will be opened in, for multiple monitors.\n\n" "0 is the primary monitor, 1 is the second monitor, and so on.\n\n" "Not all games will respect this. Not recommended for multi-monitor games like Lightning Model / Valkyrie Model modes. " - "Disable Full Screen Optimizations for best results", + "Disable Full Screen Optimizations for best results.", .type = OptionType::Integer, .category = "Graphics (Full Screen)", }, @@ -225,7 +225,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "graphics-force-refresh", .desc = "Attempt to change the refresh rate for the primary monitor before the game boots; " - "works in both full screen and windowed modes, but known to fail for some games", + "works in both full screen and windowed modes, but known to fail for some games.", .type = OptionType::Integer, .category = "Graphics (Common)", }, @@ -237,7 +237,7 @@ static const std::vector OPTION_DEFINITIONS = { "For full screen mode, forcibly set a custom resolution.\n\n" "Works great for some games, but can COMPLETELY BREAK other games - YMMV!\n\n" "If you are using -forceresswap/-sdvxlandscape, put the TARGET monitor resolution in this field.\n\n" - "This should only be used as last resort if your GPU/monitor can't display the resolution required by the game", + "This should only be used as last resort if your GPU/monitor can't display the resolution required by the game.", .type = OptionType::Text, .setting_name = "1280,720", .category = "Graphics (Full Screen)" @@ -263,7 +263,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Override fullscreen refresh rate requested by the game for second monitor, " "useful if you have a sub monitor that is not quite exactly 60Hz.\n\n" - "WARNING: experimental as we have not done extensive testing to see if this causes desyncs", + "WARNING: experimental as we have not done extensive testing to see if this causes desyncs.", .type = OptionType::Integer, .category = "Graphics (Full Screen)" }, @@ -271,7 +271,7 @@ static const std::vector OPTION_DEFINITIONS = { // Graphics9On12 .title = "DirectX 9 on 12 (DEPRECATED - use -dx9on12 instead)", .name = "9on12", - .desc = "Use D3D9On12 wrapper library, requires Windows 10. Deprecated - use -dx9on12 instead", + .desc = "Use D3D9On12 wrapper library, requires Windows 10. Deprecated - use -dx9on12 instead.", .type = OptionType::Bool, .hidden = true, .category = "Graphics (Common)", @@ -283,7 +283,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "dx9on12", .aliases= "dx9on12", .desc = "Use D3D9On12 wrapper library, requires Windows 10. Has no effect games on that don't use DX9. Can cause some games to crash.\n\n" - "Default: auto (use DX9 for most games, but turn on 9on12 for games that require it on non-NVIDIA GPUs)", + "Default: auto (use DX9 for most games, but turn on 9on12 for games that require it on non-NVIDIA GPUs).", .type = OptionType::Enum, .category = "Graphics (Common)", .elements = { @@ -302,14 +302,14 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Discord Rich Presence", .name = "richpresence", - .desc = "Enables Discord Rich Presence support", + .desc = "Enables Discord Rich Presence support.", .type = OptionType::Bool, .category = "Miscellaneous", }, { .title = "Smart Local EA", .name = "smartea", - .desc = "Automatically enables -ea when server is offline", + .desc = "Automatically enables -ea when server is offline.", .type = OptionType::Bool, .category = "Network (Advanced)", }, @@ -337,7 +337,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Preferred NetAdapter IP", .name = "network", .desc = "This is NOT the EA service URL; use -url for that. " - "Force the use of an adapter with the specified network. Must also provide -subnet", + "Force the use of an adapter with the specified network. Must also provide -subnet.", .type = OptionType::Text, .category = "Network (Development)", .sensitive = true, @@ -345,21 +345,21 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Preferred NetAdapter Subnet", .name = "subnet", - .desc = "Force the use of an adapter with the specified subnet. Must also provide -network", + .desc = "Force the use of an adapter with the specified subnet. Must also provide -network.", .type = OptionType::Text, .category = "Network (Development)", }, { .title = "Disable Network Fixes", .name = "netfixdisable", - .desc = "Force disables network fixes", + .desc = "Force disables network fixes.", .type = OptionType::Bool, .category = "Network (Development)", }, { .title = "HTTP/1.1", .name = "http11", - .desc = "Sets EA3 http11 value", + .desc = "Sets EA3 http11 value.", .type = OptionType::Enum, .category = "Network (Development)", .elements = {{"0", "Off"}, {"1", "On"}}, @@ -367,14 +367,14 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Disable SSL Protocol", .name = "ssldisable", - .desc = "Prevents the SSL protocol from being registered", + .desc = "Prevents the SSL protocol from being registered.", .type = OptionType::Bool, .category = "Network (Development)", }, { .title = "URL Slash", .name = "urlslash", - .desc = "Sets EA3 urlslash value", + .desc = "Sets EA3 urlslash value.", .type = OptionType::Enum, .category = "Network (Advanced)", .elements = {{"0", "Off"}, {"1", "On"}}, @@ -382,7 +382,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "SOFTID", .name = "r", - .desc = "Set custom SOFTID override", + .desc = "Set custom SOFTID override.", .type = OptionType::Text, .category = "Development", .sensitive = true, @@ -390,7 +390,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "(REMOVED) VR controls (experimental)", .name = "vr", - .desc = "This feature has been removed", + .desc = "This feature has been removed.", .type = OptionType::Bool, .hidden = true, .game_name = "DANCERUSH", @@ -401,7 +401,7 @@ static const std::vector OPTION_DEFINITIONS = { // DisableOverlay .title = "Disable Spice Overlay", .name = "overlaydisable", - .desc = "Disables the in-game overlay", + .desc = "Disables the in-game overlay.", .type = OptionType::Bool, .category = "Overlay", }, @@ -411,7 +411,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "overlayscale", .desc = "Forces UI scaling for the overlay, " "things can look off since the UI was written for 100% scaling. " - "Enter value in percentage, between 10-400, inclusive", + "Enter value in percentage, between 10-400, inclusive.", .type = OptionType::Integer, .setting_name = "200", .category = "Overlay", @@ -422,7 +422,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-autofps", .display_name = "autofps", .aliases= "autofps", - .desc = "Automatically show FPS / clock / timer overlay window when the game starts", + .desc = "Automatically show FPS / clock / timer overlay window when the game starts.", .type = OptionType::Bool, .category = "Overlay", }, @@ -430,7 +430,7 @@ static const std::vector OPTION_DEFINITIONS = { // spice2x_FpsOpposite .title = "Show FPS/Clock top-left", .name = "fpsflip", - .desc = "Show FPS / clock / timer overlay on the top left of the screen instead of the top right", + .desc = "Show FPS / clock / timer overlay on the top left of the screen instead of the top right.", .type = OptionType::Bool, .category = "Overlay", }, @@ -440,7 +440,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-autosubscreen", .display_name = "autosubscreen", .aliases= "autosubscreen", - .desc = "Automatically show the subscreen overlay when the game starts, if the game has one", + .desc = "Automatically show the subscreen overlay when the game starts, if the game has one.", .type = OptionType::Bool, .category = "Overlay", }, @@ -450,7 +450,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-autoiopanel", .display_name = "autoiopanel", .aliases= "autoiopanel", - .desc = "Automatically show I/O panel window when the game starts", + .desc = "Automatically show I/O panel window when the game starts.", .type = OptionType::Bool, .category = "Overlay", }, @@ -460,7 +460,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-autokeypad", .display_name = "autokeypad", .aliases= "autokeypad", - .desc = "Automatically show virtual keypad window when the game starts", + .desc = "Automatically show virtual keypad window when the game starts.", .type = OptionType::Enum, .category = "Overlay", .elements = { @@ -473,7 +473,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load IIDX Module", .name = "iidx", - .desc = "Manually enable Beatmania IIDX module", + .desc = "Manually enable Beatmania IIDX module.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -481,7 +481,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "IIDX Camera Order Flip", .name = "iidxflipcams", - .desc = "Flip the camera order", + .desc = "Flip the camera order.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -490,7 +490,7 @@ static const std::vector OPTION_DEFINITIONS = { // IIDXDisableCameras .title = "IIDX Disable Cameras (DEPRECATED - no longer needed)", .name = "iidxdisablecams", - .desc = "Disables cameras", + .desc = "Disables cameras.", .type = OptionType::Bool, .hidden = true, .game_name = "Beatmania IIDX", @@ -501,7 +501,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "IIDX Use Official AC Cams", .name = "iidxcabcams", .desc = "For IIDX25+, allow direct access to cameras from real arcade cabinets. " - "Only turn this on if you have OFFICIAL arcade cameras connected to the correct USB ports. Default: auto", + "Only turn this on if you have OFFICIAL arcade cameras connected to the correct USB ports. Default: auto.", .type = OptionType::Enum, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -517,7 +517,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "iidxtdjcamhook", .display_name = "iidxcamhook", .aliases = "iidxcamhook", - .desc = "Experimental camera support for IIDX 27+ via texture hooking. Requires camera(s) that support YUY2 or NV12 encoding", + .desc = "Experimental camera support for IIDX 27+ via texture hooking. Requires camera(s) that support YUY2 or NV12 encoding.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -528,7 +528,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "iidxtdjcamhookratio", .display_name = "iidxcamhookratio", .aliases = "iidxcamhookratio", - .desc = "Determine what aspect ratio should be preferred for webcam input. Default: 16:9", + .desc = "Determine what aspect ratio should be preferred for webcam input. Default: 16:9.", .type = OptionType::Enum, .hidden = true, .game_name = "Beatmania IIDX", @@ -546,7 +546,7 @@ static const std::vector OPTION_DEFINITIONS = { .aliases = "iidxcamhookoffset", .desc = "Override DLL offsets for camera hook; " "format: 5 hex values separated by commas " - "(offset_hook_a, offset_textures, offset_camera_manager, offset_d3d_device, offset_afp_texture)", + "(offset_hook_a, offset_textures, offset_camera_manager, offset_d3d_device, offset_afp_texture).", .type = OptionType::Text, .setting_name = "0x5817a0,0x6fffbd8,0xbbae40,0xe0,0x30", .game_name = "Beatmania IIDX", @@ -561,7 +561,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Specify a partial ID of the camera to use as the TOP camera. Useful if you have more than 3 cameras and need to tell spice which ones to use.\n\n" "To get IDs, launch the game and look for camera IDs from MFEnumDeviceSources.\n\n" - "For example, `vid_1234&pid_5678` matches on \\\\?\\usb#vid_1234&pid_5678&mi_00#7&234123456&1&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\\global", + "For example, `vid_1234&pid_5678` matches on `\\\\?\\usb#vid_1234&pid_5678&mi_00#7&234123456&1&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\\global`.", .type = OptionType::Text, .setting_name = "vid_1234&pid_5678", .game_name = "Beatmania IIDX", @@ -576,7 +576,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Specify a partial ID of the camera to use as the FRONT camera. Useful if you have more than 3 cameras and need to tell spice which ones to use.\n\n" "To get IDs, launch the game and look for camera IDs from MFEnumDeviceSources.\n\n" - "For example, `vid_1234&pid_5678` matches on \\\\?\\usb#vid_1234&pid_5678&mi_00#7&234123456&1&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\\global", + "For example, `vid_1234&pid_5678` matches on `\\\\?\\usb#vid_1234&pid_5678&mi_00#7&234123456&1&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\\global`.", .type = OptionType::Text, .setting_name = "vid_90ab&pid_cdef", .game_name = "Beatmania IIDX", @@ -602,7 +602,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "iidxasio", .desc = "ASIO driver name to use, replacing XONAR SOUND CARD(64). " "String should match registry key under HKLM\\SOFTWARE\\ASIO\\ \n\n" - "IIDX is very picky about ASIO devices it can support, YMMV", + "IIDX is very picky about ASIO devices it can support, YMMV.", .type = OptionType::Text, .game_name = "Beatmania IIDX", .category = "Game Options", @@ -610,7 +610,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "IIDX BIO2 Firmware Update", .name = "iidxbio2fw", - .desc = "Enables BIO2 firmware updates. WARNING - can cause semi-permanent change to your I/O board", + .desc = "Enables BIO2 firmware updates. WARNING - can cause semi-permanent change to your I/O board.", .type = OptionType::Bool, .hidden = true, .game_name = "Beatmania IIDX", @@ -630,7 +630,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxdigitalttsens", .display_name = "iidxdigitalttsens", .aliases= "iidxdigitalttsens", - .desc = "Adjust sensitivity of turntable when digital input (buttons) is used. Does not affect analog input! Default: 4", + .desc = "Adjust sensitivity of turntable when digital input (buttons) is used. Does not affect analog input! Default: 4.", .type = OptionType::Integer, .setting_name = "(0-255)", .game_name = "Beatmania IIDX", @@ -643,7 +643,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "SOCD for turntables when using button input; what happens when both directions are pressed.\n\n" "last: most recently pressed direction takes priority\n\n" "first: first pressed direction takes priority\n\n" - "neutral (default): TT does not move when both directions are pressed, recommended to avoid excessive POORs", + "neutral (default): TT does not move when both directions are pressed, recommended to avoid excessive POORs.", .type = OptionType::Enum, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -659,7 +659,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxldjforce720p", .display_name = "iidxldjforce720p", .aliases= "iidxldjforce720p", - .desc = "Force Definition Type HD (720p) mode instead of FHD (1080p) for IIDX30+. Only for LDJ! TDJ is always FHD in IIDX30+", + .desc = "Force Definition Type HD (720p) mode instead of FHD (1080p) for IIDX30+. Only for LDJ! TDJ is always FHD in IIDX30+.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -670,7 +670,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxtdjsubsize", .display_name = "iidxtdjsubsize", .aliases= "iidxtdjsubsize", - .desc = "Default size of the subscreen overlay.\n\nNote: in windowed mode, subscreen will always be full size.\n\nDefault: medium", + .desc = "Default size of the subscreen overlay.\n\nNote: in windowed mode, subscreen will always be full size.\n\nDefault: medium.", .type = OptionType::Enum, .game_name = "Beatmania IIDX", .category = "Overlay", @@ -687,7 +687,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxledfontsize", .display_name = "iidxledfontsize", .aliases= "iidxledfontsize", - .desc = "Configure the font size of the segment display, in pixels. Default: 64 (px)", + .desc = "Configure the font size of the segment display, in pixels. Default: 64 (px).", .type = OptionType::Integer, .game_name = "Beatmania IIDX", .category = "Overlay", @@ -699,7 +699,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "iidxledcolor", .aliases= "iidxledcolor", .desc = "Configure the font color of the segment display; specify RGB value in hex. " - "Default: 0xff0000 (red)", + "Default: 0xff0000 (red).", .type = OptionType::Hex, .game_name = "Beatmania IIDX", .category = "Overlay", @@ -710,7 +710,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxledpos", .display_name = "iidxledpos", .aliases= "iidxledpos", - .desc = "Initial position of the segment display. Default: bottom", + .desc = "Initial position of the segment display. Default: bottom.", .type = OptionType::Enum, .game_name = "Beatmania IIDX", .category = "Overlay", @@ -728,7 +728,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "IIDX LED Ticker Borderless", .name = "iidxledborderless", .aliases= "iidxledborderless", - .desc = "Make LED ticker overlay window borderless (remove window decoration)", + .desc = "Make LED ticker overlay window borderless (remove window decoration).", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Overlay", @@ -736,7 +736,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Sound Voltex Module", .name = "sdvx", - .desc = "Manually enable Sound Voltex Module", + .desc = "Manually enable Sound Voltex Module.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -745,7 +745,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "SDVX Force 720p", .name = "sdvx720", .desc = "Force Sound Voltex 720p display mode, used by older games. " - "For newer games, use window resize function instead", + "For newer games, use window resize function instead.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -753,7 +753,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "SDVX Printer Emulation", .name = "printer", - .desc = "Enable Sound Voltex printer emulation", + .desc = "Enable Sound Voltex printer emulation.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -762,7 +762,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXPrinterOutputPath .title = "SDVX Printer Output Path", .name = "printerpath", - .desc = "Path to folder where images will be stored", + .desc = "Path to folder where images will be stored.", .type = OptionType::Text, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -770,7 +770,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "SDVX Printer Output Clear", .name = "printerclear", - .desc = "Clean up saved images in the output directory on startup", + .desc = "Clean up saved images in the output directory on startup.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -778,7 +778,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "SDVX Printer Output Overwrite", .name = "printeroverwrite", - .desc = "Always overwrite the same file in output directory", + .desc = "Always overwrite the same file in output directory.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -787,7 +787,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXPrinterOutputFormat .title = "SDVX Printer Output Format", .name = "printerformat", - .desc = "File format for printer output", + .desc = "File format for printer output.", .type = OptionType::Text, .setting_name = "(png/bmp/tga/jpg)", .game_name = "Sound Voltex", @@ -796,7 +796,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "SDVX Printer JPG Quality", .name = "printerjpgquality", - .desc = "Quality setting in percent if JPG format is used", + .desc = "Quality setting in percent if JPG format is used.", .type = OptionType::Integer, .setting_name = "(0-100)", .game_name = "Sound Voltex", @@ -819,7 +819,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Disables touch hooks and lets the game access a touch screen directly. " "Requires a touch screen to be connected as a secondary monitor. " "Touch input must be routed to the primary screen via Windows Tablet PC settings. " - "Enable this when you get duplicate touch inputs from an actual touch screen", + "Enable this when you get duplicate touch inputs from an actual touch screen.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -830,7 +830,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-sdvxdigitalknobsens", .display_name = "sdvxdigitalknobsens", .aliases= "sdvxdigitalknobsens", - .desc = "Adjust sensitivity of knobs when digital input (buttons) is used. Does not affect analog input! Default: 16", + .desc = "Adjust sensitivity of knobs when digital input (buttons) is used. Does not affect analog input! Default: 16.", .type = OptionType::Integer, .setting_name = "(0-255)", .game_name = "Sound Voltex", @@ -843,7 +843,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "SOCD for knobs when using button input; what happens when both directions are pressed.\n\n" "last (default): most recently pressed direction takes priority, recommended to deal with slams\n\n" "first: first pressed direction takes priority\n\n" - "neutral: knob does not move when both directions are pressed", + "neutral: knob does not move when both directions are pressed.", .type = OptionType::Enum, .game_name = "Sound Voltex", .category = "Game Options (Advanced)", @@ -872,7 +872,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-sdvxsubpos", .display_name = "sdvxsubpos", .aliases= "sdvxsubpos", - .desc = "Location for the subscreen overlay. Default: bottom", + .desc = "Location for the subscreen overlay. Default: bottom.", .type = OptionType::Enum, .game_name = "Sound Voltex", .category = "Overlay", @@ -899,7 +899,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load DDR Module", .name = "ddr", - .desc = "Manually enable Dance Dance Revolution module", + .desc = "Manually enable Dance Dance Revolution module.", .type = OptionType::Bool, .game_name = "Dance Dance Revolution", .category = "Game Options (Advanced)", @@ -907,7 +907,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "DDR 4:3 Mode", .name = "ddrsd/o", - .desc = "Enable DDR 4:3 (SD) mode", + .desc = "Enable DDR 4:3 (SD) mode.", .type = OptionType::Bool, .game_name = "Dance Dance Revolution", .category = "Game Options", @@ -916,7 +916,7 @@ static const std::vector OPTION_DEFINITIONS = { // DDRSkipCodecRegisteration .title = "DDR Skip Codec Registration", .name = "ddrnocodec", - .desc = "Prevent automatic registration of codecs in the com folder", + .desc = "Prevent automatic registration of codecs in the com folder.", .type = OptionType::Bool, .game_name = "Dance Dance Revolution", .category = "Game Options (Advanced)", @@ -924,7 +924,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Pop'n Music Module", .name = "pnm", - .desc = "Manually enable Pop'n Music module", + .desc = "Manually enable Pop'n Music module.", .type = OptionType::Bool, .game_name = "Pop'n Music", .category = "Game Options (Advanced)", @@ -932,7 +932,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Pop'n Music Force HD Mode", .name = "pnmhd", - .desc = "Force enable Pop'n Music HD mode", + .desc = "Force enable Pop'n Music HD mode.", .type = OptionType::Bool, .game_name = "Pop'n Music", .category = "Game Options", @@ -940,7 +940,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Pop'n Music Force SD Mode", .name = "pnmsd", - .desc = "Force enable Pop'n Music SD mode", + .desc = "Force enable Pop'n Music SD mode.", .type = OptionType::Bool, .game_name = "Pop'n Music", .category = "Game Options", @@ -948,7 +948,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load HELLO! Pop'n Music Module", .name = "hpm", - .desc = "Manually enable HELLO! Pop'n Music module", + .desc = "Manually enable HELLO! Pop'n Music module.", .type = OptionType::Bool, .game_name = "HELLO! Pop'n Music", .category = "Game Options (Advanced)", @@ -956,7 +956,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load GitaDora Module", .name = "gd", - .desc = "Manually enable GitaDora module", + .desc = "Manually enable GitaDora module.", .type = OptionType::Bool, .game_name = "GitaDora", .category = "Game Options (Advanced)", @@ -972,7 +972,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "GitaDora Cabinet Type", .name = "gdcabtype", - .desc = "Select cabinet type. DX has more input and lights. Pick SD2 for single player guitar mode on white cab", + .desc = "Select cabinet type. DX has more input and lights. Pick SD2 for single player guitar mode on white cab.", .type = OptionType::Enum, .game_name = "GitaDora", .category = "Game Options", @@ -982,7 +982,7 @@ static const std::vector OPTION_DEFINITIONS = { // GitaDoraArenaSingleWindow .title = "GitaDora Arena Single Window (EXPERIMENTAL)", .name = "gdaonewindow", - .desc = "For Arena Model, when combined with windowed mode, only show the main game window; enables subscreen overlay", + .desc = "For Arena Model, when combined with windowed mode, only show the main game window; enables subscreen overlay.", .type = OptionType::Bool, .game_name = "GitaDora", .category = "Game Options", @@ -996,7 +996,7 @@ static const std::vector OPTION_DEFINITIONS = { "Has no effect if you are using analog bindings for X/Y axis; expectation is that your controller " "handles this correctly (most do not, however).\n\n" "As always, remember to restart the game after changing options. If you need to change in the game, " - "use the I/O panel overlay window", + "use the I/O panel overlay window.", .type = OptionType::Enum, .game_name = "GitaDora", .category = "Game Options", @@ -1015,7 +1015,7 @@ static const std::vector OPTION_DEFINITIONS = { "how sensitive wailing is.\n\n" "Default: 100 (ms)\n\n" "If set to 0, no hold will occur, which means you need to press the wail button longer to register; " - "default value of 100ms will cause the game to trigger wail even on a light tap of the button", + "default value of 100ms will cause the game to trigger wail even on a light tap of the button.", .type = OptionType::Integer, .game_name = "GitaDora", .category = "Game Options", @@ -1024,7 +1024,7 @@ static const std::vector OPTION_DEFINITIONS = { // GitaDoraSubOverlaySize .title = "GitaDora Subscreen Overlay Size", .name = "gdsubsize", - .desc = "Default size of the subscreen overlay. Default: medium", + .desc = "Default size of the subscreen overlay. Default: medium.", .type = OptionType::Enum, .game_name = "GitaDora", .category = "Overlay", @@ -1037,7 +1037,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Jubeat Module", .name = "jb", - .desc = "Manually enable Jubeat module", + .desc = "Manually enable Jubeat module.", .type = OptionType::Bool, .game_name = "Jubeat", .category = "Game Options (Advanced)", @@ -1045,7 +1045,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Reflec Beat Module", .name = "rb", - .desc = "Manually enable Reflec Beat module", + .desc = "Manually enable Reflec Beat module.", .type = OptionType::Bool, .game_name = "Reflec Beat", .category = "Game Options (Advanced)", @@ -1053,7 +1053,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Tenkaichi Shogikai Module", .name = "shogikai", - .desc = "Manually enable Tenkaichi Shogikai module", + .desc = "Manually enable Tenkaichi Shogikai module.", .type = OptionType::Bool, .game_name = "Tenkaichi Shogikai", .category = "Game Options (Advanced)", @@ -1061,7 +1061,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Beatstream Module", .name = "bs", - .desc = "Manually enable Beatstream module", + .desc = "Manually enable Beatstream module.", .type = OptionType::Bool, .game_name = "Beatstream", .category = "Game Options (Advanced)", @@ -1069,7 +1069,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Nostalgia Module", .name = "nostalgia", - .desc = "Manually enable Nostalgia module", + .desc = "Manually enable Nostalgia module.", .type = OptionType::Bool, .game_name = "Nostalgia", .category = "Game Options (Advanced)", @@ -1077,7 +1077,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Dance Evolution Module", .name = "dea", - .desc = "Manually enable Dance Evolution module", + .desc = "Manually enable Dance Evolution module.", .type = OptionType::Bool, .game_name = "Dance Evolution", .category = "Game Options (Advanced)", @@ -1085,7 +1085,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load FutureTomTom Module", .name = "ftt", - .desc = "Manually enable FutureTomTom module", + .desc = "Manually enable FutureTomTom module.", .type = OptionType::Bool, .game_name = "FutureTomTom", .category = "Game Options (Advanced)", @@ -1093,7 +1093,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load BBC Module", .name = "bbc", - .desc = "Manually enable Bishi Bashi Channel module", + .desc = "Manually enable Bishi Bashi Channel module.", .type = OptionType::Bool, .game_name = "Bishi Bashi Channel", .category = "Game Options (Advanced)", @@ -1101,7 +1101,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Metal Gear Arcade Module", .name = "mga", - .desc = "Manually enable Metal Gear Arcade module", + .desc = "Manually enable Metal Gear Arcade module.", .type = OptionType::Bool, .game_name = "Metal Gear", .category = "Game Options (Advanced)", @@ -1109,7 +1109,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Quiz Magic Academy Module", .name = "qma", - .desc = "Manually enable Quiz Magic Academy module", + .desc = "Manually enable Quiz Magic Academy module.", .type = OptionType::Bool, .game_name = "Quiz Magic Academy", .category = "Game Options (Advanced)", @@ -1117,7 +1117,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Road Fighters 3D Module", .name = "rf3d", - .desc = "Manually enable Road Fighters 3D module", + .desc = "Manually enable Road Fighters 3D module.", .type = OptionType::Bool, .game_name = "Road Fighters 3D", .category = "Game Options (Advanced)", @@ -1125,7 +1125,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Steel Chronicle Module", .name = "sc", - .desc = "Manually enable Steel Chronicle module", + .desc = "Manually enable Steel Chronicle module.", .type = OptionType::Bool, .game_name = "Steel Chronicle", .category = "Game Options (Advanced)", @@ -1133,7 +1133,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Mahjong Fight Club Module", .name = "mfc", - .desc = "Manually enable Mahjong Fight Club module", + .desc = "Manually enable Mahjong Fight Club module.", .type = OptionType::Bool, .game_name = "Mahjong Fight Club", .category = "Game Options (Advanced)", @@ -1141,7 +1141,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Scotto Module", .name = "scotto", - .desc = "Manually enable Scotto module", + .desc = "Manually enable Scotto module.", .type = OptionType::Bool, .game_name = "Scotto", .category = "Game Options (Advanced)", @@ -1149,7 +1149,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Dance Rush Module", .name = "dr", - .desc = "Manually enable Dance Rush module", + .desc = "Manually enable Dance Rush module.", .type = OptionType::Bool, .game_name = "DANCERUSH", .category = "Game Options (Advanced)", @@ -1157,7 +1157,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Winning Eleven Module", .name = "we", - .desc = "Manually enable Winning Eleven module", + .desc = "Manually enable Winning Eleven module.", .type = OptionType::Bool, .game_name = "Winning Eleven", .category = "Game Options (Advanced)", @@ -1165,7 +1165,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Otoca D'or Module", .name = "otoca", - .desc = "Manually enable Otoca D'or module", + .desc = "Manually enable Otoca D'or module.", .type = OptionType::Bool, .game_name = "Otoca D'or", .category = "Game Options (Advanced)", @@ -1173,7 +1173,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load LovePlus Module", .name = "loveplus", - .desc = "manually enable LovePlus module", + .desc = "manually enable LovePlus module.", .type = OptionType::Bool, .game_name = "LovePlus", .category = "Game Options (Advanced)", @@ -1181,7 +1181,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Charge Machine Module", .name = "pcm", - .desc = "manually enable Charge Machine module", + .desc = "manually enable Charge Machine module.", .type = OptionType::Bool, .game_name = "Charge Machine", .category = "Game Options (Advanced)", @@ -1189,7 +1189,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Ongaku Paradise Module", .name = "onpara", - .desc = "manually enable Ongaku Paradise module", + .desc = "manually enable Ongaku Paradise module.", .type = OptionType::Bool, .game_name = "Ongaku Paradise", .category = "Game Options (Advanced)", @@ -1197,7 +1197,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Force Load Busou Shinki Module", .name = "busou", - .desc = "manually enable Busou Shinki module", + .desc = "manually enable Busou Shinki module.", .type = OptionType::Bool, .game_name = "Busou Shinki: Armored Princess Battle Conductor", .category = "Game Options (Advanced)", @@ -1206,7 +1206,7 @@ static const std::vector OPTION_DEFINITIONS = { // LoadCCJModule .title = "Force Load Chase Chase Jokers Module", .name = "ccj", - .desc = "manually enable Chase Chase Jokers module", + .desc = "manually enable Chase Chase Jokers module.", .type = OptionType::Bool, .game_name = "Chase Chase Jokers", .category = "Game Options (Advanced)", @@ -1224,7 +1224,7 @@ static const std::vector OPTION_DEFINITIONS = { // LoadMFGModule .title = "Force Load Mahjong Fight Girl Module", .name = "mfg", - .desc = "manually enable Mahjong Fight Girl module", + .desc = "manually enable Mahjong Fight Girl module.", .type = OptionType::Bool, .game_name = "Mahjong Fight Girl", .category = "Game Options (Advanced)", @@ -1233,7 +1233,7 @@ static const std::vector OPTION_DEFINITIONS = { // LoadPCModule .title = "Force Load Polaris Chord Module", .name = "pc", - .desc = "manually enable Polaris Chord module", + .desc = "manually enable Polaris Chord module.", .type = OptionType::Bool, .game_name = "Polaris Chord", .category = "Game Options (Advanced)", @@ -1242,7 +1242,7 @@ static const std::vector OPTION_DEFINITIONS = { // LoadMusecaModule .title = "Force Load Museca Module", .name = "museca", - .desc = "manually enable Museca module", + .desc = "manually enable Museca module.", .type = OptionType::Bool, .game_name = "Museca", .category = "Game Options (Advanced)", @@ -1250,14 +1250,14 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Modules Folder Override", .name = "modules", - .desc = "Sets a custom path to the modules folder", + .desc = "Sets a custom path to the modules folder.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "Screenshot Folder Override", .name = "screenshotpath", - .desc = "Sets a custom path to the screenshots folder", + .desc = "Sets a custom path to the screenshots folder.", .type = OptionType::Text, .category = "Path Overrides", }, @@ -1265,7 +1265,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Configuration Path Override", .name = "cfgpath", .desc = "Sets a custom file path for config file. Must be passed via the command line. " - "If left empty, %appdata%\\spicetools.xml will be used", + "If left empty, %appdata%\\spicetools.xml will be used.", .type = OptionType::Text, .setting_name = "(default)", .category = "Path Overrides", @@ -1276,7 +1276,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Screen Resize Config Path Override", .name = "resizecfgpath", .desc = "Sets a custom file path for screen resize config file. " - "If left empty, %appdata%\\spice2x\\spicetools_screen_resize.json will be used", + "If left empty, %appdata%\\spice2x\\spicetools_screen_resize.json will be used.", .type = OptionType::Text, .category = "Path Overrides", }, @@ -1285,63 +1285,63 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Patch Manager Config Path Override", .name = "patchcfgpath", .desc = "Sets a custom file path for patch manager config file. Can be used to manage 'profiles' for auto-patches. " - "If left empty, %appdata%\\spice2x\\spicetools_patch_manager.json will be used", + "If left empty, %appdata%\\spice2x\\spicetools_patch_manager.json will be used.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "Intel SDE", .name = "sde", - .desc = "Path to Intel SDE kit path for automatic attaching", + .desc = "Path to Intel SDE kit path for automatic attaching.", .type = OptionType::Text, .category = "Development", }, { .title = "ea3-config.xml Override", .name = "e", - .desc = "Sets a custom path to ea3-config.xml", + .desc = "Sets a custom path to ea3-config.xml.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "app-config.xml Override", .name = "a", - .desc = "Sets a custom path to app-config.xml", + .desc = "Sets a custom path to app-config.xml.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "avs-config.xml Override", .name = "v", - .desc = "Sets a custom path to avs-config.xml", + .desc = "Sets a custom path to avs-config.xml.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "bootstrap.xml Override", .name = "b", - .desc = "Sets a custom path to bootstrap.xml", + .desc = "Sets a custom path to bootstrap.xml.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "log.txt Override", .name = "y", - .desc = "Sets a custom path to log.txt", + .desc = "Sets a custom path to log.txt.", .type = OptionType::Text, .category = "Path Overrides", }, { .title = "API TCP Port", .name = "api", - .desc = "Port the API should be listening on", + .desc = "Port the API should be listening on.", .type = OptionType::Integer, .category = "SpiceCompanion and API", }, { .title = "API Password", .name = "apipass", - .desc = "Set the custom user password needed to use the API", + .desc = "Set the custom user password needed to use the API.", .type = OptionType::Text, .category = "SpiceCompanion and API", .sensitive = true, @@ -1349,35 +1349,35 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "API Verbose Logging", .name = "apilogging", - .desc = "verbose logging of API activity", + .desc = "verbose logging of API activity.", .type = OptionType::Bool, .category = "API (Dev)", }, { .title = "API Serial Port", .name = "apiserial", - .desc = "Serial port the API should be listening on", + .desc = "Serial port the API should be listening on.", .type = OptionType::Text, .category = "API (Serial)", }, { .title = "API Serial Baud", .name = "apiserialbaud", - .desc = "Baud rate for the serial port", + .desc = "Baud rate for the serial port.", .type = OptionType::Integer, .category = "API (Serial)", }, { .title = "API Pretty", .name = "apipretty", - .desc = "Slower, but pretty API output", + .desc = "Slower, but pretty API output.", .type = OptionType::Bool, .category = "API (Dev)", }, { .title = "API Debug Mode", .name = "apidebug", - .desc = "Enables API debugging mode", + .desc = "Enables API debugging mode.", .type = OptionType::Bool, .category = "API (Dev)", }, @@ -1386,7 +1386,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "API Screen Mirror Quality Override", .name = "apiscreenq", .desc = "JPEG compression level of mirrored images, overriding any client request. " - "Value must be between 0 (poor quality) and 100 (best quality), inclusive. Default: 70", + "Value must be between 0 (poor quality) and 100 (best quality), inclusive. Default: 70.", .type = OptionType::Integer, .setting_name = "(0-100)", .category = "SpiceCompanion and API", @@ -1398,7 +1398,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Divide value of mirrored images, overriding any client request. " "Divide of 1 means send every pixel, 2 means every other pixel, 3 means every third pixel, and so on; " "increasing the value drastically reduces transfer size at the cost of image quality. " - "Value must be 1 or greater. Default: 1", + "Value must be 1 or greater. Default: 1.", .type = OptionType::Integer, .setting_name = "1", .category = "SpiceCompanion and API", @@ -1406,56 +1406,56 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Enable All IO Modules", .name = "io", - .desc = "Manually enable ALL IO emulation", + .desc = "Manually enable ALL IO emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable ACIO Module", .name = "acio", - .desc = "Manually enable ACIO emulation", + .desc = "Manually enable ACIO emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable ICCA Module", .name = "icca", - .desc = "Manually enable ICCA emulation", + .desc = "Manually enable ICCA emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable DEVICE Module", .name = "device", - .desc = "Manually enable DEVICE emulation", + .desc = "Manually enable DEVICE emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable EXTDEV Module", .name = "extdev", - .desc = "Manually enable EXTDEV emulation", + .desc = "Manually enable EXTDEV emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable AMI2000 Module", .name = "ami2000", - .desc = "Manually enable AMI2000 emulation", + .desc = "Manually enable AMI2000 emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable SCIUNIT Module", .name = "sciunit", - .desc = "Manually enable SCIUNIT emulation", + .desc = "Manually enable SCIUNIT emulation.", .type = OptionType::Bool, .category = "I/O Modules", }, { .title = "Enable device passthrough", .name = "devicehookdisable", - .desc = "Disable I/O and serial device hooks", + .desc = "Disable I/O and serial device hooks.", .type = OptionType::Bool, .category = "I/O Modules", }, @@ -1464,7 +1464,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "wintouch", .desc = "For touch screen input, disable usage of Raw Input API and instead use " "Win8 Pointer API or Win7 Touch API. Only enable this if you have trouble " - "using the default (raw input) touch input, as Raw Input performs better", + "using the default (raw input) touch input, as Raw Input performs better.", .type = OptionType::Bool, .category = "Touch Parameters", }, @@ -1473,7 +1473,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "touchemuforce", .desc = "Force enable hook for GetTouchInputInfo API and inject WM_TOUCH events. " "This is automatically turned on when needed, so it is not typically required to " - "turn it on manually. Do not enable this unless you have trouble", + "turn it on manually. Do not enable this unless you have trouble.", .type = OptionType::Bool, .category = "Touch Parameters", }, @@ -1481,7 +1481,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Invert Raw Input Touch", .name = "touchinvert", .desc = "Inverts raw touch coordinates; only works for default raw input handler, " - "and not Windows Touch API", + "and not Windows Touch API.", .type = OptionType::Bool, .category = "Touch Parameters", }, @@ -1500,7 +1500,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-touchcard", .display_name = "touchcard", .aliases= "touchcard", - .desc = "Show Insert Card touch button on main display", + .desc = "Show Insert Card touch button on main display.", .type = OptionType::Bool, .category = "Touch Parameters", }, @@ -1508,28 +1508,28 @@ static const std::vector OPTION_DEFINITIONS = { // ICCAReaderPort .title = "ICCA Reader Port", .name = "reader", - .desc = "Connects to and uses a ICCA on a given COM port", + .desc = "Connects to and uses a ICCA on a given COM port.", .type = OptionType::Text, .category = "NFC Card Readers", }, { .title = "ICCA Reader Port (with toggle)", .name = "togglereader", - .desc = "Connects to and uses a ICCA on a given COM port, and enabled NumLock toggling between P1/P2", + .desc = "Connects to and uses a ICCA on a given COM port, and enabled NumLock toggling between P1/P2.", .type = OptionType::Text, .category = "NFC Card Readers", }, { .title = "CardIO HID Reader Support", .name = "cardio", - .desc = "Enables detection and support of cardio HID readers", + .desc = "Enables detection and support of cardio HID readers.", .type = OptionType::Bool, .category = "NFC Card Readers", }, { .title = "CardIO HID Reader Order Flip", .name = "cardioflip", - .desc = "Flips the order of detection for P1/P2", + .desc = "Flips the order of detection for P1/P2.", .type = OptionType::Bool, .category = "NFC Card Readers", }, @@ -1537,14 +1537,14 @@ static const std::vector OPTION_DEFINITIONS = { // CardIOHIDReaderOrderToggle .title = "CardIO HID Reader Order Toggle", .name = "cardiotoggle", - .desc = "Toggles reader between P1/P2 using the NumLock key state", + .desc = "Toggles reader between P1/P2 using the NumLock key state.", .type = OptionType::Bool, .category = "NFC Card Readers", }, { .title = "HID SmartCard (ACR122U)", .name = "scard", - .desc = "Detects and uses HID smart card readers for card input. Developed for ACR122U reader", + .desc = "Detects and uses HID smart card readers for card input. Developed for ACR122U reader.", .type = OptionType::Bool, .hidden = !WITH_SCARD, .category = "NFC Card Readers", @@ -1553,7 +1553,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "HID SmartCard Order Flip", .name = "scardflip", - .desc = "Flips the order of detection for P1/P2", + .desc = "Flips the order of detection for P1/P2.", .type = OptionType::Bool, .hidden = !WITH_SCARD, .category = "NFC Card Readers", @@ -1562,7 +1562,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "HID SmartCard Order Toggle", .name = "scardtoggle", - .desc = "Toggles reader between P1/P2 using the NumLock key state", + .desc = "Toggles reader between P1/P2 using the NumLock key state.", .type = OptionType::Bool, .hidden = !WITH_SCARD, .category = "NFC Card Readers", @@ -1593,14 +1593,14 @@ static const std::vector OPTION_DEFINITIONS = { // SextetStreamPort .title = "SextetStream Port", .name = "sextet", - .desc = "Use a SextetStream device on a given COM port", + .desc = "Use a SextetStream device on a given COM port.", .type = OptionType::Text, .category = "I/O Options", }, { .title = "Enable BemaniTools 5 API", .name = "bt5api", - .desc = "Enables partial BemaniTools 5 API compatibility layer", + .desc = "Enables partial BemaniTools 5 API compatibility layer.", .type = OptionType::Bool, .category = "BT5 API", }, @@ -1618,7 +1618,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-processpriority", .display_name = "processpriority", .aliases= "processpriority", - .desc = "Sets the process priority, can help with odd lag spikes. Default: high", + .desc = "Sets the process priority, can help with odd lag spikes. Default: high.", .type = OptionType::Enum, .category = "Performance", .elements = { @@ -1636,7 +1636,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "processaffinity", .aliases= "processaffinity", .desc = "Set process affinity by calling SetProcessAffinityMask. " - "Must provide a hexadecimal mask (e.g., 0x1ff00)", + "Must provide a hexadecimal mask (e.g., 0x1ff00).", .type = OptionType::Hex, .category = "Performance", }, @@ -1646,7 +1646,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-processefficiency", .display_name = "processefficiency", .aliases= "processefficiency", - .desc = "Has no effect if -processaffinity is set. Default: Use all cores", + .desc = "Has no effect if -processaffinity is set. Default: Use all cores.", .type = OptionType::Enum, .category = "Performance", .elements = { @@ -1658,7 +1658,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Heap Size", .name = "h", - .desc = "Custom heap size in bytes", + .desc = "Custom heap size in bytes.", .type = OptionType::Integer, .category = "Development", }, @@ -1667,7 +1667,7 @@ static const std::vector OPTION_DEFINITIONS = { // DisableGSyncDetection .title = "(REMOVED) Disable G-Sync Detection", .name = "keepgsync", - .desc = "Broken feature that was not implemented correctly", + .desc = "Broken feature that was not implemented correctly.", .type = OptionType::Bool, .hidden = true, .category = "Graphics (Common)", @@ -1683,7 +1683,7 @@ static const std::vector OPTION_DEFINITIONS = { "sets v-sync to 'Application Controlled', " "and the Power Management Mode to 'Prefer maximum performance'.\n\n" "G-SYNC may fail to disable properly; try enabling full-screen optimizations (FSO) for spice(64).exe.\n\n" - "May not work as expected for some games; namely G-SYNC and SDVX ", + "May not work as expected for some games; namely G-SYNC and SDVX.", .type = OptionType::Bool, .category = "Graphics (Common)", }, @@ -1694,7 +1694,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Disables all audio hooks, including device initialization and volume hooks.\n\n" "Default: off (allow Spice to hook IMMDeviceEnumerator for and optionally let " "you use a different backend instead of exclusive WASAPI).\n\n" - "Check this if you want games to natively access your audio device", + "Check this if you want games to natively access your audio device.", .type = OptionType::Bool, .category = "Audio (Hacks)", }, @@ -1706,7 +1706,7 @@ static const std::vector OPTION_DEFINITIONS = { .aliases= "volumehookdisable", .desc = "Disables audio volume hook.\n\n" "Default: off (prevent games from changing audio volume by hooking IAudioEndpointVolume).\n\n" - "Check this if you want games to freely change your volume", + "Check this if you want games to freely change your volume.", .type = OptionType::Bool, .category = "Audio (Hacks)", }, @@ -1714,7 +1714,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Spice Audio Hook Backend", .name = "audiobackend", .desc = "Selects the audio backend to use when spice audio hook is enabled, overriding exclusive WASAPI. " - "Does nothing for games that do not output to exclusive WASAPI", + "Does nothing for games that do not output to exclusive WASAPI.", .type = OptionType::Enum, .category = "Audio", .elements = { @@ -1725,7 +1725,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "Spice Audio Hook ASIO Driver ID", .name = "asiodriverid", - .desc = "Selects the ASIO driver id to use when Spice Audio Backend is set to ASIO", + .desc = "Selects the ASIO driver id to use when Spice Audio Backend is set to ASIO.", .type = OptionType::Integer, .category = "Audio", }, @@ -1733,7 +1733,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "WASAPI Dummy Context", .name = "audiodummy", .desc = "Uses a dummy `IAudioClient` context to maintain full audio control. " - "This is automatically enabled when required and not normally needed", + "This is automatically enabled when required and not normally needed.", .type = OptionType::Bool, .hidden = true, .category = "Audio (Hacks)", @@ -1742,7 +1742,7 @@ static const std::vector OPTION_DEFINITIONS = { // DelayBy5Seconds .title = "Delay by 5 Seconds (DEPRECATED - use -sleepduration instead)", .name = "sleep", - .desc = "Waits five seconds before starting the game", + .desc = "Waits five seconds before starting the game.", .type = OptionType::Bool, .hidden = true, // superseded by sp2x-sleep_duration .category = "Miscellaneous", @@ -1753,14 +1753,14 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-sleepduration", .display_name = "sleepduration", .aliases= "sleepduration", - .desc = "Wait for N seconds before starting the game", + .desc = "Wait for N seconds before starting the game.", .type = OptionType::Integer, .category = "Miscellaneous", }, { .title = "Load KBT/KLD Stubs", .name = "stubs", - .desc = "Enables loading kbt/kld stub files", + .desc = "Enables loading kbt/kld stub files.", .type = OptionType::Bool, .category = "Development", }, @@ -1791,7 +1791,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "AVS Log Level", .name = "loglevel", - .desc = "Set the level of detail for AVS log messages written to the log. Does not affect logging from spice", + .desc = "Set the level of detail for AVS log messages written to the log. Does not affect logging from spice.", .type = OptionType::Enum, .category = "Debug Log", .elements = {{"fatal", ""}, {"warning", ""}, {"info", ""}, {"misc", ""}, {"all", ""}, {"disable", ""}}, @@ -1799,49 +1799,49 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "EA Automap", .name = "automap", - .desc = "Enable automap in patch configuration", + .desc = "Enable automap in patch configuration.", .type = OptionType::Bool, .category = "Network (Development)", }, { .title = "EA Netdump", .name = "netdump", - .desc = "Enable automap in network dumping configuration", + .desc = "Enable automap in network dumping configuration.", .type = OptionType::Bool, .category = "Network (Development)", }, { .title = "Discord RPC AppID Override", .name = "discordappid", - .desc = "Set the discord RPC AppID override", + .desc = "Set the discord RPC AppID override.", .type = OptionType::Text, .category = "Development", }, { .title = "Blocking Logger", .name = "logblock", - .desc = "Slower but safer logging used for debugging", + .desc = "Slower but safer logging used for debugging.", .type = OptionType::Bool, .category = "Debug Log", }, { .title = "Debug CreateFile", .name = "createfiledebug", - .desc = "Outputs CreateFile debug prints", + .desc = "Outputs CreateFile debug prints.", .type = OptionType::Bool, .category = "Debug Log", }, { .title = "Verbose Graphics Logging", .name = "graphicsverbose", - .desc = "Enable the verbose logging of graphics hook code", + .desc = "Enable the verbose logging of graphics hook code.", .type = OptionType::Bool, .category = "Debug Log", }, { .title = "Verbose AVS Logging", .name = "avsverbose", - .desc = "Enable the verbose logging of AVS filesystem functions", + .desc = "Enable the verbose logging of AVS filesystem functions.", .type = OptionType::Bool, .category = "Debug Log", }, @@ -1851,42 +1851,42 @@ static const std::vector OPTION_DEFINITIONS = { .name = "ea3verbose", .desc = "This option is only useful for network developers; leave this OFF.\n\n" "By default, ea3/debug/verbose node is removed by spice to prevent exposing PCBID in the logs. " - "When this is enabled, ea3/debug/verbose node in the XML will be kept and exposed to the game", + "When this is enabled, ea3/debug/verbose node in the XML will be kept and exposed to the game.", .type = OptionType::Bool, .category = "Debug Log", }, { .title = "Disable Colored Output", .name = "nocolor", - .desc = "Disable terminal colors for log outputs to console", + .desc = "Disable terminal colors for log outputs to console.", .type = OptionType::Bool, .category = "Debug Log", }, { .title = "Disable ACP Hook", .name = "acphookdisable", - .desc = "Force disable advanced code pages hooks for encoding", + .desc = "Force disable advanced code pages hooks for encoding.", .type = OptionType::Bool, .category = "Development", }, { .title = "Disable Signal Handling", .name = "signaldisable", - .desc = "Force disable signal handling", + .desc = "Force disable signal handling.", .type = OptionType::Bool, .category = "Development", }, { .title = "Disable Debug Hooks", .name = "dbghookdisable", - .desc = "Disable hooks for debug functions (e.g. OutputDebugString)", + .desc = "Disable hooks for debug functions (e.g. OutputDebugString).", .type = OptionType::Bool, .category = "Development", }, { .title = "Disable AVS VFS Drive Mount Redirection", .name = "avs-redirect-disable", - .desc = "Disable D:/E:/F: AVS VFS mount redirection", + .desc = "Disable D:/E:/F: AVS VFS mount redirection.", .type = OptionType::Bool, .category = "Development", }, @@ -1894,14 +1894,14 @@ static const std::vector OPTION_DEFINITIONS = { // DisableAvsCache .title = "Disable AVS Cache", .name = "avscachedisable", - .desc = "Disable optimization used for some games to cache data file info (only for IIDX32+ for now)", + .desc = "Disable optimization used for some games to cache data file info (only for IIDX32+ for now).", .type = OptionType::Bool, .category = "Development", }, { .title = "Output PEB", .name = "pebprint", - .desc = "Prints PEB on startup to console", + .desc = "Prints PEB on startup to console.", .type = OptionType::Bool, .category = "Debug Log", }, @@ -1909,7 +1909,7 @@ static const std::vector OPTION_DEFINITIONS = { // DumpSystemInfo .title = "Dump System Information", .name = "sysdump", - .desc = "Print system information to the log on startup. Default: basic", + .desc = "Print system information to the log on startup. Default: basic.", .type = OptionType::Enum, .category = "Debug Log", .elements = { @@ -1931,7 +1931,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "CCJ Arguments Override", .name = "ccjargs", .desc = "Command line arguments passed to the game. " - "If left blank, '-nomatchselect' is applied, which disables matchmaking debug menu", + "If left blank, '-nomatchselect' is applied, which disables matchmaking debug menu.", .type = OptionType::Text, .setting_name = "", .game_name = "Chase Chase Jokers", @@ -1941,7 +1941,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "CCJ Mouse Trackball", .name = "ccjmousetb", .desc = "Use mouse for trackball input; disables any keyboard / joystick control for the trackball. "\ - "Hold RMB and move the cursor to control the trackball", + "Hold RMB and move the cursor to control the trackball.", .type = OptionType::Bool, .game_name = "Chase Chase Jokers", .category = "Game Options", @@ -1949,7 +1949,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "CCJ Mouse Trackball Toggle", .name = "ccjmousetbt", - .desc = "Instead of holding RMB, click RMB to toggle trackball input", + .desc = "Instead of holding RMB, click RMB to toggle trackball input.", .type = OptionType::Bool, .game_name = "Chase Chase Jokers", .category = "Game Options", @@ -1957,7 +1957,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "CCJ Trackball Sensitivity", .name = "ccjtrackballsens", - .desc = "Adjust sensitivity of trackball. Affects both digital and analog input. Default: 10", + .desc = "Adjust sensitivity of trackball. Affects both digital and analog input. Default: 10.", .type = OptionType::Integer, .setting_name = "(0-255)", .game_name = "Chase Chase Jokers", @@ -1990,7 +1990,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "MFG Disable IO Emulation", .name = "mfgnoio", - .desc = "Disables BI2X hooks for MFG", + .desc = "Disables BI2X hooks for MFG.", .type = OptionType::Bool, .setting_name = "", .game_name = "Mahjong Fight Girl", @@ -2010,7 +2010,7 @@ static const std::vector OPTION_DEFINITIONS = { // PCNoIO .title = "PC Disable IO Emulation", .name = "pcnoio", - .desc = "Disables BI2X hooks for PC", + .desc = "Disables BI2X hooks for PC.", .type = OptionType::Bool, .setting_name = "", .game_name = "Polaris Chord", @@ -2020,7 +2020,7 @@ static const std::vector OPTION_DEFINITIONS = { // PCKnobMode .title = "PC Fader Knobs Mode", .name = "pcknobs", - .desc = "Allows SDVX knobs and IIDX turntables to be bound as Polaris Chord faders", + .desc = "Allows SDVX knobs and IIDX turntables to be bound as Polaris Chord faders.", .type = OptionType::Bool, .game_name = "Polaris Chord", .category = "Game Options", @@ -2032,7 +2032,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "lightsbrightness", .aliases= "lightsbrightness", .desc = "Modify HID output values, measured in %. Default is 100. " - "Requires compatible hardware, not just any LED", + "Requires compatible hardware, not just any LED.", .type = OptionType::Integer, .setting_name = "(0-100)", .category = "I/O Options", @@ -2045,7 +2045,7 @@ static const std::vector OPTION_DEFINITIONS = { .aliases= "windowborder", .desc = "For windowed mode: overrides window border style. " "Does not work for all games; can possibly make the game crash! " - "Can also be changed in Screen Resize window (default F11)", + "Can also be changed in Screen Resize window (default F11).", .type = OptionType::Enum, .category = "Graphics (Windowed)", // match cfg::WindowDecorationMode @@ -2062,7 +2062,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "windowsize", .aliases= "windowsize", .desc = "For windowed mode: override for window size, width and height separated by comma. " - "Can also be changed in Screen Resize window (default F11)", + "Can also be changed in Screen Resize window (default F11).", .type = OptionType::Text, .setting_name = "1280,720", .category = "Graphics (Windowed)", @@ -2074,7 +2074,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "windowpos", .aliases= "windowpos", .desc = "For windowed mode: override for window position, x and y separated by comma. " - "Can also be changed in Screen Resize window (default F11)", + "Can also be changed in Screen Resize window (default F11).", .type = OptionType::Text, .setting_name = "120,240", .category = "Graphics (Windowed)", @@ -2086,7 +2086,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "windowalwaysontop", .aliases= "windowalwaysontop", .desc = "For windowed mode: make window to be always on top of other windows. " - "Can also be changed in Screen Resize window (default F11)", + "Can also be changed in Screen Resize window (default F11).", .type = OptionType::Bool, .category = "Graphics (Windowed)", }, @@ -2123,7 +2123,7 @@ static const std::vector OPTION_DEFINITIONS = { // IIDXWindowedSubscreenBorderless .title = "IIDX Windowed Subscreen Borderless", .name = "iidxwsubborderless", - .desc = "Remove window decoration from windowed subscreen", + .desc = "Remove window decoration from windowed subscreen.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Graphics (Windowed)", @@ -2132,7 +2132,7 @@ static const std::vector OPTION_DEFINITIONS = { // IIDXWindowedSubscreenAlwaysOnTop .title = "IIDX Windowed Subscreen Always On Top", .name = "iidxwsubtop", - .desc = "Keep windowed subscreen on top", + .desc = "Keep windowed subscreen on top.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Graphics (Windowed)", @@ -2144,7 +2144,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "jubeatlegacytouch", .aliases= "jubeatlegacytouch", .desc = "For touch screen players - use the legacy & less accurate grid-based layout for touch recognition, " - "instead of the new & more accurate touch targets. Default: off", + "instead of the new & more accurate touch targets. Default: off.", .type = OptionType::Bool, .game_name = "Jubeat", .category = "Game Options", @@ -2156,7 +2156,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "rbscaletouch", .aliases= "rbscaletouch", .desc = "Apply scaling to make touch area smaller than the screen. " - "Specify a number out of 1000 (e.g., 800 means 80%). Default: 1000", + "Specify a number out of 1000 (e.g., 800 means 80%). Default: 1000.", .type = OptionType::Integer, .game_name = "Reflec Beat", .category = "Game Options", @@ -2168,7 +2168,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "asioforceunload", .aliases= "asioforceunload", .desc = "For certain buggy ASIO drivers, force unload of ASIO driver when audio stream stops. " - "Used for working around ASIO drivers that lock up after force quitting games", + "Used for working around ASIO drivers that lock up after force quitting games.", .type = OptionType::Bool, .category = "Audio (Hacks)", }, @@ -2178,7 +2178,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-iidxnoespec", .display_name = "iidxnoespec", .aliases= "iidxnoespec", - .desc = "Disable I/O emulation for E-spec I/O upgrade (GELDJ-JX kit)", + .desc = "Disable I/O emulation for E-spec I/O upgrade (GELDJ-JX kit).", .type = OptionType::Bool, .hidden = true, .game_name = "Beatmania IIDX", @@ -2203,7 +2203,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-drsdisabletouch", .display_name = "drsdisabletouch", .aliases= "drsdisabletouch", - .desc = "Disables multitouch input", + .desc = "Disables multitouch input.", .type = OptionType::Bool, .game_name = "DANCERUSH", .category = "Game Options", @@ -2214,7 +2214,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "sp2x-drstransposetouch", .display_name = "drstransposetouch", .aliases= "drstransposetouch", - .desc = "Swap x and y values of touch input", + .desc = "Swap x and y values of touch input.", .type = OptionType::Bool, .game_name = "DANCERUSH", .category = "Game Options", @@ -2239,7 +2239,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Disables touch hooks and lets the game access a touch screen directly. " "Requires a touch screen to be connected as a secondary monitor. " "Touch input must be routed to the primary screen via Windows Tablet PC settings. " - "Enable this when you get duplicate touch inputs from an actual touch screen", + "Enable this when you get duplicate touch inputs from an actual touch screen.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -2263,7 +2263,7 @@ static const std::vector OPTION_DEFINITIONS = { .aliases = "iidxsubpoke", .desc = "Emulates touches on TDJ subscreen when keypad input is received. " "Should be used along with 'Unscramble Touch Screen Keypad in TDJ' patch. " - "00 is mapped to erase button, and Decimal shows/hides the keypad", + "00 is mapped to erase button, and Decimal shows/hides the keypad.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -2296,7 +2296,7 @@ static const std::vector OPTION_DEFINITIONS = { .desc = "Force the usage of smallest buffer size supported by the device when shared mode audio is used. " "Works for games using DirectSound or shared WASAPI; no effect for exclusive WASAPI and ASIO. " "For best results (under 10ms), use the default Windows inbox audio driver instead of manufacturer supplied driver. " - "Requires Windows 10 and above", + "Requires Windows 10 and above.", .type = OptionType::Bool, .category = "Audio", }, @@ -2307,7 +2307,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "tapeledalgo", .aliases= "tapeledalgo", .desc = "For games with light arrays, determine the algorithm that is used to translate them into a single light binding in Lights tab. " - "Default: mid", + "Default: mid.", .type = OptionType::Enum, .category = "I/O Options", .elements = { @@ -2326,7 +2326,7 @@ static const std::vector OPTION_DEFINITIONS = { .aliases= "nonvapi", .desc = "Completely block the game from accessing NVAPI. Can be used if NVAPI is returning undesirable " "results to the game (e.g., wrong values from NvDisplayConfig for SDVX). You may need to apply additional " - "hex edits in order to boot the game correctly", + "hex edits in order to boot the game correctly.", .type = OptionType::Bool, .category = "Graphics (Common)", }, @@ -2362,7 +2362,7 @@ static const std::vector OPTION_DEFINITIONS = { "Option HIDDEN and DISABLED due to it affecting in-game camera angle for displaying lanes.\n\n" "Allows you to play in landscape by transposing resolution and applying image scaling.\n\n" "Works only for SDVX5 and above! This is identical to -forceresswap.\n\n" - "Will launch at 1080p by default; strongly consider combining this with -forceres option to render at monitor native resolution", + "Will launch at 1080p by default; strongly consider combining this with -forceres option to render at monitor native resolution.", .type = OptionType::Bool, .hidden = true, .game_name = "Sound Voltex", @@ -2375,7 +2375,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "smxstage", .aliases= "smxstage", .desc = "StepmaniaX stage will show up as a device that can recieve lighting output. " - "For configurator, restart spicecfg.exe after enabling this to have the device show up for binding", + "For configurator, restart spicecfg.exe after enabling this to have the device show up for binding.", .type = OptionType::Bool, .category = "I/O Options", }, @@ -2386,7 +2386,7 @@ static const std::vector OPTION_DEFINITIONS = { .display_name = "smxdedicab", .aliases = "smxdedicab", .desc = "StepManiaX Dedicated Cabinet will show up as a device that can recieve lighting output. " - "For configurator, restart spicecfg.exe after enabling this to have the device show up for binding", + "For configurator, restart spicecfg.exe after enabling this to have the device show up for binding.", .type = OptionType::Bool, .category = "I/O Options" }, @@ -2396,7 +2396,7 @@ static const std::vector OPTION_DEFINITIONS = { .name = "iidxreccqp", .desc = "WARNING: double check if your network allows this & your hardware supports it.\n\n" "For TDJ Play Record feature, specify ConstQP quality settings for NVENC. Lower is higher quality but bigger file.\n\n" - "Two options: specify a single number (20) to set CQ Level, or specify comma-separated numbers (23,25,20) to set P, B, I levels", + "Two options: specify a single number (20) to set CQ Level, or specify comma-separated numbers (23,25,20) to set P, B, I levels.", .type = OptionType::Text, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -2405,7 +2405,7 @@ static const std::vector OPTION_DEFINITIONS = { // IIDXRecDisable .title = "IIDX Recording Force Disable", .name = "iidxnorec", - .desc = "When enabled, this prevents the play record feature from being used", + .desc = "When enabled, this prevents the play record feature from being used.", .type = OptionType::Bool, .game_name = "Beatmania IIDX", .category = "Game Options (Advanced)", @@ -2420,7 +2420,7 @@ static const std::vector OPTION_DEFINITIONS = { "auto (default): use v2 for most games, v2_drum for DrumMania and FutureTomTom\n\n" "v2: new delta-time logic in spice2x, timestamp every on/off events and apply min. sustain period to rapid on/off triggers, supports velocity threshold\n\n" "v2_drum: same as v2, but disable holds; better for some drum kits\n\n" - "legacy: legacy poll-based spicetools logic, may behave incorrectly when the same input is mapped to multiple buttons, no support for velocity threshold", + "legacy: legacy poll-based spicetools logic, may behave incorrectly when the same input is mapped to multiple buttons, no support for velocity threshold.", .type = OptionType::Enum, .category = "I/O Options", .elements = { @@ -2439,7 +2439,7 @@ static const std::vector OPTION_DEFINITIONS = { "Set the minimum duration (in milliseconds) each note is sustained, so that the game's I/O can pick up the input when polled.\n\n" "If this is too short, when game polls for input, it may fail to observe quick input (such as drums). " "If this is too long, rapid hits may be dropped due to coalescing.\n\n" - "Recommended to keep at default of 20ms unless you have issues", + "Recommended to keep at default of 20ms unless you have issues.", .type = OptionType::Integer, .setting_name = "20", .category = "I/O Options", @@ -2454,7 +2454,7 @@ static const std::vector OPTION_DEFINITIONS = { "auto (default): thread mode if <120Hz, backfill if >=120Hz\n\n" "thread: starts a thread to periodically insert polls into the buffer\n\n" "backfill: fills the buffer on each frame with last known state info at short regular intervals up to the current time, then writes the current state.\n\n" - "Only has an effect when emulating P4IO (arkmdxp4.dll)", + "Only has an effect when emulating P4IO (arkmdxp4.dll).", .type = OptionType::Enum, .game_name = "Dance Dance Revolution", .category = "Game Options (Advanced)", @@ -2472,7 +2472,7 @@ static const std::vector OPTION_DEFINITIONS = { "Determine input behavior when game window is not in focus.\n\n" "never: allow input regardless of focus\n" "naive (default): only naive bindings check for window focus, rawinput binds are always allowed\n" - "always: only process input when window is in focus", + "always: only process input when window is in focus.", .type = OptionType::Enum, .category = "I/O Options", .elements = { @@ -2489,7 +2489,7 @@ static const std::vector OPTION_DEFINITIONS = { "Enables emulation of touch gestures to make it easier to navigate the game without a touchscreen.\n\n" "This enables two things:\n" " 1. Swipe/Touch bindings in Buttons tab (Swipe Next Page, etc)\n" - " 2. PIN pad bindings (make sure Unscramble Keypad patch is applied))", + " 2. PIN pad bindings (make sure Unscramble Keypad patch is applied)).", .type = OptionType::Bool, .game_name = "Nostalgia", .category = "Game Options", @@ -2498,7 +2498,7 @@ static const std::vector OPTION_DEFINITIONS = { // ForceBackBufferCount .title = "V-Sync Buffering", .name = "vsyncbuffer", - .desc = "Using triple buffering may improve cases of micro-stuttering but increases input latency", + .desc = "Using triple buffering may improve cases of micro-stuttering but increases input latency.", .type = OptionType::Enum, .category = "Graphics (Common)", .elements = { @@ -2510,7 +2510,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXWindowedSubscreenSize .title = "SDVX Windowed Subscreen Size", .name = "sdvxwsubsize", - .desc = "Size of the subscreen window. Defaults to (1920,1080)", + .desc = "Size of the subscreen window. Defaults to (1920,1080).", .type = OptionType::Text, .setting_name = "1920,1080", .game_name = "Sound Voltex", @@ -2520,7 +2520,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXWindowedSubscreenPosition .title = "SDVX Windowed Subscreen Position", .name = "sdvxwsubpos", - .desc = "Initial position of the subscreen window. Defaults to (0,0)", + .desc = "Initial position of the subscreen window. Defaults to (0,0).", .type = OptionType::Text, .setting_name = "0,0", .game_name = "Sound Voltex", @@ -2530,7 +2530,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXWindowedSubscreenBorderless .title = "SDVX Windowed Subscreen Borderless", .name = "sdvxwsubborderless", - .desc = "Remove window decoration from windowed subscreen", + .desc = "Remove window decoration from windowed subscreen.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Graphics (Windowed)", @@ -2539,7 +2539,7 @@ static const std::vector OPTION_DEFINITIONS = { // SDVXWindowedSubscreenAlwaysOnTop .title = "SDVX Windowed Subscreen Always On Top", .name = "sdvxwsubtop", - .desc = "Keep windowed subscreen on top", + .desc = "Keep windowed subscreen on top.", .type = OptionType::Bool, .game_name = "Sound Voltex", .category = "Graphics (Windowed)", @@ -2548,7 +2548,7 @@ static const std::vector OPTION_DEFINITIONS = { // LovePlusCamEnable .title = "LovePlus Camera Enable", .name = "lovepluscam", - .desc = "Allow game to access camera; camera must be compatible with game", + .desc = "Allow game to access camera; camera must be compatible with game.", .type = OptionType::Bool, .game_name = "LovePlus", .category = "Game Options", @@ -2557,7 +2557,7 @@ static const std::vector OPTION_DEFINITIONS = { // LovePlusPrinterOutputPath .title = "LovePlus Printer Output Path", .name = "lpprinterpath", - .desc = "Path to folder where images will be stored", + .desc = "Path to folder where images will be stored.", .type = OptionType::Text, .game_name = "LovePlus", .category = "Game Options (Advanced)", @@ -2565,7 +2565,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "LovePlus Printer Output Clear", .name = "lpprinterclear", - .desc = "Clean up saved images in the output directory on startup", + .desc = "Clean up saved images in the output directory on startup.", .type = OptionType::Bool, .game_name = "LovePlus", .category = "Game Options (Advanced)", @@ -2573,7 +2573,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "LovePlus Printer Output Overwrite", .name = "lpprinteroverwrite", - .desc = "Always overwrite the same file in output directory", + .desc = "Always overwrite the same file in output directory.", .type = OptionType::Bool, .game_name = "LovePlus", .category = "Game Options (Advanced)", @@ -2582,7 +2582,7 @@ static const std::vector OPTION_DEFINITIONS = { // LovePlusPrinterOutputFormat .title = "LovePlus Printer Output Format", .name = "lpprinterformat", - .desc = "File format for printer output", + .desc = "File format for printer output.", .type = OptionType::Text, .setting_name = "(png/bmp/tga/jpg)", .game_name = "LovePlus", @@ -2591,7 +2591,7 @@ static const std::vector OPTION_DEFINITIONS = { { .title = "LovePlus Printer JPG Quality", .name = "lpprinterjpgquality", - .desc = "Quality setting in percent if JPG format is used", + .desc = "Quality setting in percent if JPG format is used.", .type = OptionType::Integer, .setting_name = "(0-100)", .game_name = "LovePlus", @@ -2602,7 +2602,7 @@ static const std::vector OPTION_DEFINITIONS = { .title = "Command Line Args Override", .name = "cmdoverride", .desc = "By default, option values in spicecfg take precedence over command-line args, for legacy compat.\n" - "When this is specified in command line, command-line args take precedence instead", + "When this is specified in command line, command-line args take precedence instead.", .type = OptionType::Bool, .category = "Development", .disabled = true,