-
Notifications
You must be signed in to change notification settings - Fork 73
PC optimization
sp2xdev edited this page Nov 27, 2023
·
191 revisions
To reduce desyncs, frame drops, and stuttering:
- 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 how to set things up to avoid issues.
- 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.
- These are not games you downloaded from Steam that runs better with tweaks to graphics settings, these are arcade games designed to run on specific PC configuration with extremely specific settings. Throw out conventional wisdom on "how to make PC games run better"; instead, the goal is to mimic an arcade PCB as closely as possible
- Do not, under any circumstances, use "skip monitor check" patches. You might be asking, "why does the hex edit exist if you're not supposed to use it?" - the answer it that those were added for tools and EA server developers to boot the games quicker. If you're actually playing the game, you should keep monitor check.
- It's OK if monitor checks aren't exactly 60.000Hz or 120.000Hz - because they're not like that at the arcade either. For example, IIDX LM cabs stabilize around 119.98xx.
- Your monitor may boot into 59.94Hz or 119.2Hz (for example). This is also OK, as monitor check will eventually stabilize to match your refresh rate.
- If you're staring at a FPS counter, only do it while you're in a song. In menus, your framerate will swing wildly, and this is perfectly normal, as the games aren't perfectly optimized for menus; only during gameplay.
- Set Windows power profile to
High Performanceto 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 stateandMaximum processor stateto 100%. Be aware that depending on your PC, your CPUs may hit a thermal or current limit by doing this.
- 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.
- If you have a hybrid processor (heterogeneous configuration with E-Cores and P-Cores) - use this to run the games on the powerful cores.
- You can use this tool to calculate the processor affinity mask if you are unsure what to do.
- Process Priority (
-sp2x-processpriority) can help but it's recommended that you just leave it to the default, which sets it to high priority. - 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.
...
- YMMV: disabling HyperThreading/SMT to reduce occasional microstutters. Not enough data has been gathered but some claim that this may help on some older processors. The typical recommendation is to disable via the BIOS.
- 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. - You can also manually turn off G-Sync and set power mode to
maximum performancein NVIDIA settings. - 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.
- This will attempt to automatically disable G-SYNC and set power mode to
- For other GPUs, make sure VRR (FreeSync, Adaptive Sync) is disabled, and see if it's possible to set power policy to
maximum performance(and notpower savingorrecommended). - 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.
- Always keep V-Sync options to the default (usually
Application controlled). This will allow games to enable V-Sync when necessary, which is most games. Never forcibly turn on or turn off V-Sync via GPU settings, no matter what guide you have read has claimed. - Do not put an artificial FPS cap. Use V-Sync instead.
- 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.
- Make sure you have enough RAM. 4gb isn't going to cut it these days, even on a minimal OS setup.
- Consider disabling 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 recommended for playing these games to reduce stutters. Just make sure you have enough RAM.
- Most modern versions will require that you run the games off an SSD.
- If
log.txttends 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.txtwith others for troubleshooting.
- Remember to set it back to the default if you want to share
- Add an exception to Windows Defender to avoid scanning the game files.
- Disable the hypervisor and VBS (Virtualization-Based Security).
- If you're looking for a good clean OS image - the same used on arcade cabinets -
Windows 10 IoT Enterprise LTSCis recommended. Just be mindful, it's not Windows 10 IoT, it's not Windows 10 Enterprise, it's Windows 10 IoT Enterprise LTSC.
- 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.
This page is loosely based on https://iidx.org/infinitas_pc.