1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
// src/config/generatedConfigSchema.ts
// Configuration field type enum - matches Python
export enum ConfigFieldType {
BOOLEAN = "boolean",
INTEGER = "integer",
FLOAT = "float",
STRING = "string"
}
// Configuration field definition
export interface ConfigField {
name: string;
fieldType: ConfigFieldType;
default: boolean | number | string;
description: string;
}
// Configuration schema - auto-generated from Python
export const CONFIG_SCHEMA: Record<string, ConfigField> = {
dll: {
name: "dll",
fieldType: ConfigFieldType.STRING,
default: "/games/Lossless Scaling/Lossless.dll",
description: "specify where Lossless.dll is stored"
},
multiplier: {
name: "multiplier",
fieldType: ConfigFieldType.INTEGER,
default: 1,
description: "change the fps multiplier"
},
flow_scale: {
name: "flow_scale",
fieldType: ConfigFieldType.FLOAT,
default: 0.8,
description: "change the flow scale"
},
performance_mode: {
name: "performance_mode",
fieldType: ConfigFieldType.BOOLEAN,
default: true,
description: "use a lighter model for FG (recommended for most games)"
},
hdr_mode: {
name: "hdr_mode",
fieldType: ConfigFieldType.BOOLEAN,
default: false,
description: "enable HDR mode (only for games that support HDR)"
},
experimental_present_mode: {
name: "experimental_present_mode",
fieldType: ConfigFieldType.STRING,
default: "fifo",
description: "override Vulkan present mode (may cause crashes)"
},
dxvk_frame_rate: {
name: "dxvk_frame_rate",
fieldType: ConfigFieldType.INTEGER,
default: 0,
description: "base framerate cap for DirectX games before frame multiplier"
},
enable_wow64: {
name: "enable_wow64",
fieldType: ConfigFieldType.BOOLEAN,
default: false,
description: "enable PROTON_USE_WOW64=1 for 32-bit games (use with ProtonGE to fix crashing)"
},
disable_steamdeck_mode: {
name: "disable_steamdeck_mode",
fieldType: ConfigFieldType.BOOLEAN,
default: false,
description: "disable Steam Deck mode (unlocks hidden settings in some games)"
},
};
// Type-safe configuration data structure
export interface ConfigurationData {
dll: string;
multiplier: number;
flow_scale: number;
performance_mode: boolean;
hdr_mode: boolean;
experimental_present_mode: string;
dxvk_frame_rate: number;
enable_wow64: boolean;
disable_steamdeck_mode: boolean;
}
// Helper functions
export function getFieldNames(): string[] {
return Object.keys(CONFIG_SCHEMA);
}
export function getDefaults(): ConfigurationData {
return {
dll: "/games/Lossless Scaling/Lossless.dll",
multiplier: 1,
flow_scale: 0.8,
performance_mode: true,
hdr_mode: false,
experimental_present_mode: "fifo",
dxvk_frame_rate: 0,
enable_wow64: false,
disable_steamdeck_mode: false,
};
}
export function getFieldTypes(): Record<string, ConfigFieldType> {
return {
dll: ConfigFieldType.STRING,
multiplier: ConfigFieldType.INTEGER,
flow_scale: ConfigFieldType.FLOAT,
performance_mode: ConfigFieldType.BOOLEAN,
hdr_mode: ConfigFieldType.BOOLEAN,
experimental_present_mode: ConfigFieldType.STRING,
dxvk_frame_rate: ConfigFieldType.INTEGER,
enable_wow64: ConfigFieldType.BOOLEAN,
disable_steamdeck_mode: ConfigFieldType.BOOLEAN,
};
}
|