mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-02 06:40:42 -07:00
96e7e4949f
## Link to GitHub Issue, if one exists https://codeberg.org/nixac/spicetools/issues/4 ## Description of change Inspired by the Linux issue above in the fork, cache lstat calls for thumbnail. IIDX 32 and 33 make a call for this every frame which can cause significant overhead on Linux. This is being enabled for all versions and not just the Linux variant of the executables since it provides some marginal performance gain on Windows. ## Testing Tested IIDX 32/33, with the option on/off, and with AVS verbose logging on/off. Tested with ifs_layeredfs hook as well just to verify functionality.
290 lines
8.9 KiB
C++
290 lines
8.9 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include "cfg/option.h"
|
|
|
|
namespace launcher {
|
|
|
|
// options list - order matters
|
|
namespace Options {
|
|
enum {
|
|
GameExecutable,
|
|
OpenConfigurator,
|
|
OpenKFControl,
|
|
EAmusementEmulation,
|
|
ServiceURL,
|
|
PCBID,
|
|
Player1Card,
|
|
Player2Card,
|
|
Player1PinMacro,
|
|
Player2PinMacro,
|
|
WindowedMode,
|
|
InjectHook,
|
|
EarlyInjectHook,
|
|
ExecuteScript,
|
|
CaptureCursor,
|
|
ShowCursor,
|
|
DisplayAdapter,
|
|
GraphicsForceSingleAdapter,
|
|
GraphicsForceRefresh,
|
|
FullscreenResolution,
|
|
FullscreenOrientationFlip,
|
|
Graphics9On12,
|
|
spice2x_Dx9On12,
|
|
NoLegacy,
|
|
RichPresence,
|
|
SmartEAmusement,
|
|
EAmusementMaintenance,
|
|
spice2x_EAmusementMaintenance,
|
|
AdapterNetwork,
|
|
AdapterSubnet,
|
|
DisableNetworkFixes,
|
|
HTTP11,
|
|
DisableSSL,
|
|
URLSlash,
|
|
SOFTID,
|
|
VREnable,
|
|
DisableOverlay,
|
|
spice2x_FpsAutoShow,
|
|
spice2x_FpsOpposite,
|
|
spice2x_SubScreenAutoShow,
|
|
spice2x_IOPanelAutoShow,
|
|
spice2x_KeypadAutoShow,
|
|
LoadIIDXModule,
|
|
IIDXCameraOrderFlip,
|
|
IIDXDisableCameras,
|
|
IIDXCabCamAccess,
|
|
IIDXCamHook,
|
|
IIDXCamHookRatio,
|
|
IIDXCamHookOverride,
|
|
IIDXCamHookTopId,
|
|
IIDXCamHookFrontId,
|
|
IIDXSoundOutputDevice,
|
|
IIDXAsioDriver,
|
|
IIDXBIO2FW,
|
|
IIDXTDJMode,
|
|
spice2x_IIDXDigitalTTSensitivity,
|
|
spice2x_IIDXLDJForce720p,
|
|
spice2x_IIDXTDJSubSize,
|
|
spice2x_IIDXLEDFontSize,
|
|
spice2x_IIDXLEDColor,
|
|
spice2x_IIDXLEDPos,
|
|
IIDXLEDBorderless,
|
|
LoadSoundVoltexModule,
|
|
SDVXForce720p,
|
|
SDVXPrinterEmulation,
|
|
SDVXPrinterOutputPath,
|
|
SDVXPrinterOutputClear,
|
|
SDVXPrinterOutputOverwrite,
|
|
SDVXPrinterOutputFormat,
|
|
SDVXPrinterJPGQuality,
|
|
SDVXDisableCameras,
|
|
SDVXNativeTouch,
|
|
spice2x_SDVXDigitalKnobSensitivity,
|
|
spice2x_SDVXAsioDriver,
|
|
spice2x_SDVXSubPos,
|
|
spice2x_SDVXSubRedraw,
|
|
LoadDDRModule,
|
|
DDR43Mode,
|
|
DDRSkipCodecRegisteration,
|
|
LoadPopnMusicModule,
|
|
PopnMusicForceHDMode,
|
|
PopnMusicForceSDMode,
|
|
LoadHelloPopnMusicModule,
|
|
LoadGitaDoraModule,
|
|
GitaDoraTwoChannelAudio,
|
|
GitaDoraCabinetType,
|
|
LoadJubeatModule,
|
|
LoadReflecBeatModule,
|
|
LoadShogikaiModule,
|
|
LoadBeatstreamModule,
|
|
LoadNostalgiaModule,
|
|
LoadDanceEvolutionModule,
|
|
LoadFutureTomTomModule,
|
|
LoadBBCModule,
|
|
LoadMetalGearArcadeModule,
|
|
LoadQuizMagicAcademyModule,
|
|
LoadRoadFighters3DModule,
|
|
LoadSteelChronicleModule,
|
|
LoadMahjongFightClubModule,
|
|
LoadScottoModule,
|
|
LoadDanceRushModule,
|
|
LoadWinningElevenModule,
|
|
LoadOtocaModule,
|
|
LoadLovePlusModule,
|
|
LoadChargeMachineModule,
|
|
LoadOngakuParadiseModule,
|
|
LoadBusouShinkiModule,
|
|
LoadCCJModule,
|
|
LoadQKSModule,
|
|
LoadMFGModule,
|
|
LoadPCModule,
|
|
LoadMusecaModule,
|
|
PathToModules,
|
|
ScreenshotFolder,
|
|
ConfigurationPath,
|
|
ScreenResizeConfigPath,
|
|
PatchManagerConfigPath,
|
|
IntelSDEFolder,
|
|
PathToEa3Config,
|
|
PathToAppConfig,
|
|
PathToAvsConfig,
|
|
PathToBootstrap,
|
|
PathToLog,
|
|
APITCPPort,
|
|
APIPassword,
|
|
APIVerboseLogging,
|
|
APISerialPort,
|
|
APISerialBaud,
|
|
APIPretty,
|
|
APIDebugMode,
|
|
APIScreenMirrorQuality,
|
|
APIScreenMirrorDivide,
|
|
EnableAllIOModules,
|
|
EnableACIOModule,
|
|
EnableICCAModule,
|
|
EnableDEVICEModule,
|
|
EnableEXTDEVModule,
|
|
EnableSCIUNITModule,
|
|
EnableDevicePassthrough,
|
|
ForceWinTouch,
|
|
ForceTouchEmulation,
|
|
InvertTouchCoordinates,
|
|
DisableTouchCardInsert,
|
|
spice2x_TouchCardInsert,
|
|
ICCAReaderPort,
|
|
ICCAReaderPortToggle,
|
|
CardIOHIDReaderSupport,
|
|
CardIOHIDReaderOrderFlip,
|
|
CardIOHIDReaderOrderToggle,
|
|
HIDSmartCard,
|
|
HIDSmartCardOrderFlip,
|
|
HIDSmartCardOrderToggle,
|
|
HIDSmartCardIdConvert,
|
|
SextetStreamPort,
|
|
EnableBemaniTools5API,
|
|
RealtimeProcessPriority,
|
|
spice2x_ProcessPriority,
|
|
spice2x_ProcessAffinity,
|
|
spice2x_ProcessorEfficiencyClass,
|
|
HeapSize,
|
|
DisableGSyncDetection,
|
|
spice2x_NvapiProfile,
|
|
DisableAudioHooks,
|
|
spice2x_DisableVolumeHook,
|
|
AudioBackend,
|
|
AsioDriverId,
|
|
AudioDummy,
|
|
DelayBy5Seconds,
|
|
spice2x_DelayByNSeconds,
|
|
LoadStubs,
|
|
AdjustOrientation,
|
|
spice2x_AutoOrientation,
|
|
LogLevel,
|
|
EAAutomap,
|
|
EANetdump,
|
|
DiscordAppID,
|
|
BlockingLogger,
|
|
DebugCreateFile,
|
|
VerboseGraphicsLogging,
|
|
VerboseAVSLogging,
|
|
AllowEA3Verbose,
|
|
DisableColoredOutput,
|
|
DisableACPHook,
|
|
DisableSignalHandling,
|
|
DisableDebugHooks,
|
|
DisableAvsVfsDriveMountRedirection,
|
|
DisableAvsCache,
|
|
OutputPEB,
|
|
DumpSystemInfo,
|
|
QKSArgs,
|
|
CCJArgs,
|
|
CCJMouseTrackball,
|
|
CCJMouseTrackballWithToggle,
|
|
CCJTrackballSensitivity,
|
|
MFGArgs,
|
|
MFGCabType,
|
|
MFGNoIO,
|
|
PCArgs,
|
|
PCNoIO,
|
|
PCKnobMode,
|
|
spice2x_LightsOverallBrightness,
|
|
spice2x_WindowBorder,
|
|
spice2x_WindowSize,
|
|
spice2x_WindowPosition,
|
|
spice2x_WindowAlwaysOnTop,
|
|
WindowForceScaling,
|
|
spice2x_IIDXWindowedSubscreenSize,
|
|
spice2x_IIDXWindowedSubscreenPosition,
|
|
IIDXWindowedSubscreenBorderless,
|
|
IIDXWindowedSubscreenAlwaysOnTop,
|
|
spice2x_JubeatLegacyTouch,
|
|
spice2x_RBTouchScale,
|
|
spice2x_AsioForceUnload,
|
|
spice2x_IIDXNoESpec,
|
|
spice2x_IIDXWindowedTDJ,
|
|
spice2x_DRSDisableTouch,
|
|
spice2x_DRSTransposeTouch,
|
|
spice2x_IIDXNativeTouch,
|
|
spice2x_IIDXNoSub,
|
|
spice2x_IIDXEmulateSubscreenKeypadTouch,
|
|
spice2x_AutoCard,
|
|
spice2x_LowLatencySharedAudio,
|
|
spice2x_TapeLedAlgorithm,
|
|
spice2x_NoNVAPI,
|
|
spice2x_NoD3D9DeviceHook,
|
|
spice2x_SDVXNoSub,
|
|
SDVXFullscreenLandscape,
|
|
spice2x_EnableSMXStage,
|
|
spice2x_EnableSMXDedicab,
|
|
IIDXRecQuality,
|
|
IIDXRecDisable,
|
|
MidiAlgoVer,
|
|
MidiNoteSustain,
|
|
DDRP4IOBufferMode,
|
|
InputRequiresFocus,
|
|
NostalgiaPoke,
|
|
ForceBackBufferCount,
|
|
SDVXWindowedSubscreenSize,
|
|
SDVXWindowedSubscreenPosition,
|
|
SDVXWindowedSubscreenBorderless,
|
|
SDVXWindowedSubscreenAlwaysOnTop,
|
|
LovePlusCamEnable,
|
|
LovePlusPrinterOutputPath,
|
|
LovePlusPrinterOutputClear,
|
|
LovePlusPrinterOutputOverwrite,
|
|
LovePlusPrinterOutputFormat,
|
|
LovePlusPrinterJPGQuality,
|
|
OptionConflictResolution,
|
|
};
|
|
|
|
enum class OptionsCategory {
|
|
Everything,
|
|
Basic,
|
|
Advanced,
|
|
Dev,
|
|
API
|
|
};
|
|
}
|
|
|
|
extern bool USE_CMD_OVERRIDE;
|
|
|
|
const std::vector<std::string> &get_categories(Options::OptionsCategory category);
|
|
const std::vector<OptionDefinition> &get_option_definitions();
|
|
std::unique_ptr<std::vector<Option>> parse_options(int argc, char *argv[]);
|
|
std::vector<Option> merge_options(const std::vector<Option> &options, const std::vector<Option> &overrides);
|
|
|
|
struct GameVersion {
|
|
std::string model;
|
|
std::string dest;
|
|
std::string spec;
|
|
std::string rev;
|
|
std::string ext;
|
|
};
|
|
|
|
std::string detect_bootstrap_release_code(const std::string& bootstrap_user);
|
|
GameVersion detect_gameversion(const std::string& ea3_user, const std::string& bootstrap_user);
|
|
}
|