Skip to content

PC optimization

sp2xdev edited this page Nov 7, 2023 · 191 revisions

To reduce desyncs, frame drops, and stuttering:

General advice

  • Having a powerful PC with expensive CPU and GPU will not automatically let you run these games better. In fact, it can actually run worse - read below.
  • On the contrary; it is no longer recommended that you buy used office computers (Optiplex) for this purpose. Newer games run on low-spec "gaming" PCs, so you'll want a standard form factor PC with upgradable parts.

CPU

  • Set Windows power profile to High Performance to keep the processor frequencies high.
    • Arcade cabinets run with similar configurations where CPUs are held at maximum frequency; some of these games depend on this aspect to keep a steady framerate. IIDX, SDVX, and Nostalgia are known to be heavily affected by this.
    • Make sure you turn it back to normal profile when done playing.
    • Instead of setting an entire profile, you could also edit an existing profile and change Minimum processor state to 100%.
  • Use Process Affinity (-sp2x-processaffinity) to avoid using the lower-numbered processors.
    • Avoiding the first physical core is especially helpful since it tends to be busy with various affinitized work and drivers.
  • Process Priority (-sp2x-processpriority) can help but it's recommended that you just leave it to the default.
  • For newer games, get CPUs that support SSE4.2 and AVX2 instruction set, as they will require it. If you have a CPU built in the last decade, you're probably fine.
    • Some workarounds exist to patch out unsupported instructions, but you may be missing features.
  • If log.txt tends to be spammed with messages, it can affect performance; set Log Level (-loglevel) to Fatal if this becomes an issue.
    • Remember to set it back to the default if you want to share log.txt with others for troubleshooting.

GPU

  • For NVIDIA GPU, use Add NVIDIA application profile (-sp2x-nvprofile) option.
    • This will attempt to automatically disable G-SYNC and set power mode to maximum performance.
  • Manually turn off VRR features - G-SYNC, FreeSync, Adaptive Sync should be always OFF.
  • Manually set GPU to maximum performance - most games will greatly benefit from this for keeping a steady frame rate.
    • This is especially helpful for high-end GPUs, because they will downclock aggressively for not-so-demanding games (like the games supported by spice) to reduce heat / power.
  • Play at the right refresh rate; 60Hz for most games, and 120Hz for IIDX/SDVX when enabled.
    • Sure, you can boot the game with various hacks at different refresh rate (like 165Hz) but there is no guarantee that the game will behave correctly.

Audio

  • Prefer to use exclusive WASAPI or ASIO, and avoid shared mode WASAPI whenever possible. See this page for more details.
  • Don't run audio over HDMI or DisplayPort as they may add significant latency. Some games are incompatible with this unless patched.

Memory and disk

  • It is indeed recommended that you disable paging in Windows. Arcade machines run with paging disabled, and the games will assume this is the case (instead of pinning the memory to RAM, they assume that memory is never paged out). While this is not recommended for general use PCs, it is strongly recommended for playing these games.
  • Most modern versions will require that you run the games off an SSD.

On laptops...

  • It's discouraged that you run these games on a laptop due to endless oddities people have encountered in the past.
    • The issues range from: display panel not supporting the required resolution, firmware triggering a thermal throttle resulting in low performance, audio incompatibility issues, switchable graphics causing games to display a white screen....
  • If you must run on a laptop:
    • Try to run on an external monitor.
    • Make sure it's plugged into a power source.
    • If you have switchable graphics (iGPU + dGPU), make sure it's set to use the dGPU for spice.

Further reading / Reference

This page is loosely based on https://iidx.org/infinitas_pc.

Clone this wiki locally