Hatsune Miku: Project DIVA Mega Mix+ – Stutters Fix

This guide goes into detail about what causes the game’s stutters, and offers some ways to reduce them, without relying on mods, which in my experience don’t really help.

Stutters: What Causes Them and What You Can Do about Them (Without Mods or Going Offline)

The “Big” Stutters

These stutters tend to last for a fraction of a second and cause major desycing to the songs’ tracks, and so are the most important to deal with. These seem to stem from two different causes:

1: Device Changes. The game will stutter each time a device is added or removed from Windows. You can test this yourself by unplugging a mouse or other device (not your controller) during a song.

Solution: Unfortunately, Windows has a pretty wide definition of what’s considered a device, and so they can change around constantly. Windows’ own Device Manager will “refresh” (become blank for a second then refill) whenever there’s a device change, but that makes it hard to figure out what the device causing problems is. I’d suggest trying a program called UsbLogView. This only seems to identify devices plugged into USB, but I’ve seen at least one person who’s stutters seemed to be caused by a bad USB port constantly going out, so it’s worth a try. Beyond that, I can only suggest you try to disconnect wireless devices connected to your computer. My stutters seemed to be caused by my wireless printer, and as soon as I disconnected it, these stutters went away except from the second cause:

2: WmiPrvSE.exe. This is an app that Windows will run in the background, and you could likely see it running in Task Manager now. What it does exactly seems a bit vague aside from “displays system info.” This app may have several instances, and likes to occasionally end an instance or start a new one. If it happens to do this while the game is running, it will cause a stutter. Fortunately, in my experience, this only seems to happen very occasionally.

Solution: … But if you want to make sure it doesn’t happen, you can stop WmiPrvSE.exe from running during the game, though it will take some tinkering. The location for this file is in (assuming Windows is installed to the C drive) C:\Windows\System32\wbem. Navigate to it, then right-click it and select Properties. On the Security tab, click the Advanced button near the bottom. On the new window, near the top it should say Owner: Trusted Installer. As long as this is set as the owner, Windows won’t let you alter the file in pretty much any way. So click the button next to Trusted Installer which says Change. In the text box near the bottom, enter your Windows username (likely your email address) then press okay. Now press okay to the previous window as well, and you should be sent back to the Properties window. Now click the Edit button near the middle of the Properties window. This will open the Permissions window for WmiPrvSE.exe. Click Add, and just like before, type your Windows name into the field on the bottom to add permissions for yourself. Press Okay, and it should take you to Permissions again, but now with your username added to the groups list. Click your username then click the “allow” checkmark next to Full Control then press OK. What we’ve just done is allow ourself to do things Windows wouldn’t normally allow; most importantly for us is rename the file. Now open notepad and paste this in:

taskkill /im wmiprvse.exe /f
ren "c:\windows\system32\wbem\wmiprvse.exe" "wmiprvse.exe x"
ren "c:\windows\system32\wbem\wmiprvse.exe x" "wmiprvse.exe

Then save it as a .bat file. Running this batch file will end WmiPrvSE.exe, then rename it to “wmiprvse.exe x” so Windows doesn’t recognize it, effectively stopping it from running. Then it will wait until press any key with its window selected, after which it will give wmiprvse.exe its name back, allowing it to resume working normally. So you can run this batch file to keep WmiPrvSE.exe from running, play the game, then press a key on this batch’s window after you’re done playing to resume its functionality.

The “Small” Stutters

These stutters only tend to last a couple of frames, and aren’t as noticeable as the bigger ones, but, aside from just being annoying, can still cause a note to desync if it happens to spawn during the stutter. Again, I’ve noted two things which cause these stutters:

1: Other background tasks. My biggest culprits for this one seem to be SteamWebHelper (specifically the instance responsible for Steam’s chat interface) and nvcontainer (Nvidia’s program for its GPUs.) I’m not certain exactly what it is they’re doing that causes stutters, but…

Solution: … They did seem to stop when I manually blocked the game’s internet connection with a Windows firewall. That may suggest the game’s data collection was causing these stutters. The game has an online connection separate from Steam’s which seems to be the game’s data collection. It only ever appears right after a song, never during, but the collection itself when things change may cause problems, but this is only a theory. To set up this firewall, search firewall in the search bar and click on Windows Defender Firewall with Advanced Security. Click Outbound Rules, then New Rule near the top-right corner. Leave Program highlighted and press Next, then press Browse on the next screen and find DIVA’s exe from where you have it installed. Once its pointed to the exe, press Next. Keep Block the Connection highlighted and press Next, then leave everything highlighted on the next screen and press Next. Type a name at the top and press Finish. Now you’ve created a firewall rule to block DIVA’s connection. Back at the Outbound Connections screen, find the name you just gave it and make sure the setting is enabled. DIVA’s own connection should now be block and hopefully stop these stutters. Keep in mind this won’t stop any functionality from the game, and leaderboards, achievements, etc. will still be available.

Alternatively, if this doesn’t help, you could try ending or suspending any tasks causing stutters. This takes more effort and may cause awkwardness, but may be worthwhile if the above solution doesn’t help you. If you’re unsure which programs are causing stutters, I’d suggest using Task Manager or any other CPU monitoring program, combined with any screen recording software. Many modern GPUs like the RTX series have recording built in. You can leave Task Manager open monitoring CPU usage by task while playing and record any stutters, along with if any task spiked in CPU when it happened, revealing which task is causing the stutter.

2: Appinfo.vdf. By default, every 15 minutes Steam will check your game library against its online database for any changes that need to be made to its categories, etc. If it finds any changes, it will change whatever it must and write it to appinfo.vdf, which is located in Steam/appcache. Each time it does this, DIVA will stutter. How often Steam finds such a change and how long it takes to apply depends on the size of your Steam library. I have over 1,000 games for instance, and it changes nearly every 15 minute check and rewrites my 15MB appinfo file. A smaller library may not update nearly as often and have an appinfo of only a few MB.

Solution: Fortunately, we game hoarders do have an option to mitigate this. We’ll need the use of Steam’s hidden console functionality, which can be accessed by opening Windows’ Run feature (or simply a web browser) and typing this: steam://open/console. This will reveal a Console tab on the top of Steam’s main window, and gives us access to many extra options in the form of console commands. The one important to us is nProductInfoUpdateInterval, which lets us choose how often Steam performs library info update checks. The default value for this is 900 seconds, or 15 minutes. Naturally, we’d like to set it higher, so we could go hours without these checks, but it seems like anything above 2100 seconds, or 35 minutes (in my experience; this may vary by user) breaks the functionality completely. Funnily enough, this will actually help us. Setting the value too high (or simply to 0) will cause Steam to constantly search for library changes, but never actually apply them, and therefore never write a new appinfo.vdf. I’ve left Steam running like this for hours and can confirm that it never wrote a new appinfo.vdf in that time. The downside to doing this is that Steam’s constant searching will cause it to eat a bit of CPU and give it a small, but constant internet connection. This may be an issue on weaker hardware, so if you’d rather not do that, you can still set nProductInfoUpdateInterval to 2100. that alone will make the game stutter every 35 minutes instead of every 15 minutes, but you can also combine this with the command “app_info_update” to manually trigger a library update and reset the timer whenever you like, between songs instead of during songs so the stutter doesn’t trip you up. It seems doing this isn’t completely predictable, and I’ve had appinfo.vdf suddenly update regardless of these settings (except setting it to 0), but this should at least greatly lower them. Either way you use, make sure you use the command “update_app_info” after your nProductInfoUpdateInterval command. Normally the new timer won’t start until after an appinfo refresh, but this command lets use manually trigger one to restart the timer with our new setting.

To recap, choose one of these options:

  • Open Steam console, nProductInfoUpdateInterval 0, app_info_update
  • Open Steam console, nProductInfoUpdateInterval 2100, app_info_update, repeat app_info_update between songs before every 35 minutes.

Keep in mind that you’ll have to repeat these commands each time you want to play. Steam will go back to its default 15 minute check time each time it’s restarted.

1 Comment

  1. I’ve only encountered one experience when the game stuttered, it was Kinda like screen tearing or similar in comparison with temporary lag. All i did was exit out of the game and restart, afterwards it seems like it’s completely fine.

Leave a Reply

Your email address will not be published.