Framerate beyond 60

Looking for additional data

If you know a possible solution, tested with different setup or found another issue you can report on it through an issue tracker

Info

You may want to checkout Game Support and /Devel/<SPECIFIC_GAME> if your issue doesn't seem to be listed here

Solution

Defining __GL_SYNC_DISPLAY_DEVICE=<DEVICE_NAME> environment variable, where <DEVICE_NAME> is a port name matching monitor used for game in xrandr -q output, this switches default vsync behaviour (which konami uses) to take monitor refresh rate from specified monitor instead of one with the lowest refresh rate, this requires specified monitor set up exactly to targeted refresh rate (which can be done temporarily with xrandr as well)

Subscreen doesn't detect input

Solution
  1. Add -touchemuforce as spice launch argument
  2. Launch game in fullsreen (see quirks)
  3. Use subcreen button (default F12) to toggle subscreen

Launching in fullscreen

Solution

Add spice argument -graphics-force-single-adapter, may want to combine this with -monitor <ID> for more complicated setups

Crashes beyond IIDX24

Solution
Abstract
  • link to per style patches, they disable all in game effectors!
  • address to not use wasapi shared patches (they work, but audio will be most likely garbled)
  • use pipewire backend for spice

Some old keybinds stay even after unbinding everything

Solution
  1. Backup your current game/keybinds configuration for the game in questions
  2. Navigate to <PREFIX>/drive_c/users/steamuser/AppData/Roaming/spicetools.xml and remove at least <buttons>..</buttons> bracket under specific <game name=""></game> title issue happens for
  3. You may prefer to remove whole <game name=""></game> bracket and reset all settings for specific game (including lights, card config etc.) to be on safe side, as this issue happens due to key duplicates in config and there may be more old config residue

Missing effectors beyond IIDX24

Solution
Missing

No video playback prior to IIDX27

Solution
Missing

Game keeps maxing one of CPU threads at idle

Solution
 

You can use alternative audio endpoint by defining "signal_spice" profile through config
This endpoint will become the default once this refactor is completed
Since winelib had issues with calling back to wine's address space from unix thread, "notif_callback" endpoint profile (more optimal for use with spice) cannot be used
To keep latency penalty at the lowest, alternating busy lock between threads was introduced as a temporary solution
CPU scheduling on most kernels should handle this well enough for end-user to not notice any additional stutters
That being said, this may cause stutters on low-end systems and higher battery usage for mobile devices

My hooks won't hook

Solution

If you can, ask maintainer of your hook to properly fetch dll's base address from inside hook in question, alternatively if source code of the hook is available you can create issue on this tracker and patched hook should be provided, below is usually all that's needed to make hook work consistently

// wrong (right most of the time)
static const long VA_BASE = 0x180000000

// correct (always right)
const long VA_BASE = (long)GetModuleHandle("game.dll")

Keysound beginning cut off when playing

Solution
Tracked here, currently no solution