Valid keys

Info

Optional per-game config file
File expected at prop/linux.json of game root (usually contents), integrated into automatization tools and bmsound libraries

Example

Below is an example config file with all defaults

Warning

Every key is optional and not required
Do not define keys you aren't sure you need, extra. keys should be considered advanced and can easily render game unbootable if misused
Usually all you will need is just network.url and network.pcbid or no config file at all
You may want to check some examples as well

{
   "video": {
       "profile": "stable",
       "display": 0,
       "refresh_rate": 0,
       "fsr": -1,
       "d3d9_fallback": false
   },
   "audio": {
       "profile": "loopback_signal",
       "fpc": 64,
       "channels": 2,
       "depth": 16
   },
   "network": {
	   "url": "dummy",
	   "pcbid": null
   },
   "extra": {
       "hooks": [],
       "devel": [],
       "lightning_support": true,
       "dll_override": null,
       "rt_override": null,
       "pfx_override": null,
       "sndb_evsb_addr": 0,
       "sndb_resampler": "auto"
   }
}
Warning

Most keys defined here are only supported through helpers provided by automatization repo and won't function with spicetools + bmsound-wine slone. Those keys have been denoted by [!].

Key Default Value Description
audio.profile "loopback_signal" bmsound-wine API profile that should be used, alters audio behaviour, "stable" will be default in future (change to notify_signal for old implementation)
audio.fpc 64 frames per chunk, amount of frames generated each process, fpc*100/44100 for latency in ms, lower values equal lower latency
audio.channels 2 frame channel count (2/4/6/8)
audio.depth 16 sample depth in bits (16/24/32)
video.profile [!] "stable" (adjust per-style) alters window type, includes "force_fullscreen", "force_window", recommended left as "stable" for best match per-style
video.display [!] 0 (primary) monitor by xorg ID to be used, source of refresh rate (missing wayland logic)
video.refresh_rate [!] 0 (currently active) value to use for display, wrong value may alter game speed (missing wayland logic)
video.fsr [!] -1 (disabled) FidelityFX Super Resolution, value being sharpening power in scale 0-5 (sharpest-smoothest), not sure about its impact on latency
video.d3d9_fallback [!] false (disabled) enables wine builtin implementation of CreateDeviceEx over DXVK, not recommended due to performance, only use in case you have to use fullscreen and you run into some issues mentioned in #11, windowed mode is recommended over running fullscreen with this setting enabled
network.url [!] "dummy" (spice dummy network) EA integration URL (null to read from ea3-config.xml)
network.pcbid [!] null (read from ea3-config.xml) EA integration machine PCBID
extra.hooks [!] [] list of additional hooks, located in modules directory (ex. ["omnimix-banner.dll","omnimix-dataloader.dll"])
extra.devel [!] [] (use defaults) list of additional spice arguments added in the specified order, when running with --dbg1 enabled (ex. ["-graphicsverbose"])
extra.lightning_support [!] true enables lightning model for supported titles (not recommended, unstable)
extra.dll_override [!] null (use default) overrides game's main .dll name (not recommended, unstable)
extra.rt_override [!] null (use default) overrides proton runtime used for this title (not recommended)
extra.pfx_override [!] null (use default) overrides proton prefix used for this title (not recommended)
extra.sndb_evsb_addr 0 (use default) manually specify TX_BmsbEnumValidSoundbanks RVA for unsupported bm2dx.dll, recommended to only override for custom datacodes, example <ext>2024082601</ext> instead of <ext>2024082600</ext> in case you want to use LDJ-012 dll (not recommended)
extra.sndb_resampler "auto" (use best format by style) manually specify resampler_ to target different wav formats, currently supports "adpcm_ms" and "pcm_s16le", first one being the smallest and the only supported format for IIDX25/26, "pcm_s16le" eliminates compression, but float->s16 resampling remains (other formats require patches to bm2dx in order to not result in sound data error), leaving as "auto" will target highest quality available by datacode

Common examples

Connection with ambiguous network

Forced fullscreen on second 120hz monitor

Using additional hooks

Forcing 60hz LDJ for IIDX27+

Warning

This usage is not properly tested and therefore considered unsupported
While it may work it's not recommended unless you are sure you need it and ready to debug issues yourself if any would be to arise

Using alternative audio backends

Warning

Default endpoint should be considered usually the most reliable one

Using vanilla proton in separate prefix

Warning

This usage is not properly tested and therefore considered unsupported
It is recommended to always use proton-ge as it provides built-in support for winetricks
Prefix-per-game approach is unnecessary as automatization tools should handle incompatibilities between titles if any internally and create prefixes as needed