Diablo® III

HDD Major-Stuttering Solved (Second Thread)

This is the second thread since the first thread has reached its limit.
First Thread Link: http://us.battle.net/d3/en/forum/topic/5149178443

Original Post (OP) below:
=========================================================
Stuttering Problem Description:

The problem is that the game does not use "loading screens" to load all needed data from your hard disk drive (HDD) to your memory. Instead, the game is constantly reading from your HDD. Since other background running programs (including Windows) are also using your HDD while you are playing, it will cause your game to stutter. This happens because the game will have to wait for read/write access to your HDD.

Note: any stuttering caused by network lags (latency) is beyond our control. Huge number of enemies on one screen (+animations) will lower your FPS (this is common sense).

=========================================================
How I figured out this was the problem:

Basically, I noticed that my HDD had approximately 250ms (avg) - 1,500ms (max) read response time (RRT) for any read access to MPQ files located inside the folder:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
I've tried defragmenting C: before and after installing Diablo3, but it didn't help with the slow HDD read response time. You can find your read response time in "Resource Monitor" in windows, or just type "resource" in start menu. Just put the game in windowed mode and observe "Resource Monitor" > "Disk" > "Response Time" while you are moving your character around the screen and through different areas which normally stutters.

=========================================================
SOLUTION (Windows 7 or Vista):

1) You will need (minimum) 16GB USB flash drive (or 16GB SD card). An 8GB flash drive will not work because it will translate to 7.45GB under windows, which is smaller than needed (7.7GB).

2) Copy the entire "MPQs" folder (7.7GB) from:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
to your USB/SD drive. For me, it was "D:\" drive, so the final result was "D:\MPQs". It might be a different drive name for you, so just use what you get.

3) Rename the original "MPQs" ( located on your HDD) to anything you want.

now the tricky part ...ready ?

4) Go to windows start > and type the following in the search box: cmd and hit (CTRL+SHIFT+ENTER), which will prompt you to run command line in administrator mode.

5) Once in command prompt, type the following (make sure you have the right letter drive):
cd "C:\Program Files (x86)\Diablo III\Data_D3\PC"
mklink /j "C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs" "D:\MPQs"

***Note: you cannot "CTRL+V" in command prompt, but you can right click "paste" instead.
***if you don't like this command-line stuff (step 4 and 5) you can jump to windows XP solution, but you have to install an extra program.

If you get a message that says something like: "a symbolic link has been created .." then you did it right. Your done!

=========================================================
SOLUTION (Windows XP) also works for windows 7/Vista (no command-line involved):

Follow steps 1 through 3 from windows 7 solution above
***Note: in windows XP, the "C:\Program Files\...." will not have the (x86) part.

4) Download a free program called "Link Shell Extension" from download.cnet website. This comes in two versions 32bit and 64bit. You have to install the right version depending on which windows XP you are using (most likely 32bit). After you install it, restart your computer.

5) Browse to the folder you created in step 3, for me it was "D:\MPQs", and righ-click on the "MPQs" folder, and select >"Pick Link Source".

6) Go to the original folder location on your hard drive:
"C:\Program Files\Diablo III\Data_D3\PC"
right-click anywhere inside the "PC" folder and select > Drop As ..> Symbolic Link ( or Junction).

Thats it! your done!
=========================================================

Basically, we faked the location of the MPQs directory and relocated it to a flash drive with faster read response time (RRT) than your HDD.

Now, you should have read response times (RRT) around 5ms !

ENJOY "stutter-free" Diablo 3 !!!!!!!!!!!!!!!!!!!
=========================================================

Note: Some have tried copying the entire installation directory [Diablo III] onto a 16GB Flash drive and reported success with that. In that case, there would be no need to do anything else, just run the game from the copied directory on the Flash drive.
Edited by Edstroyer#1680 on 7/15/2012 8:03 AM PDT
Reply Quote
Thanks a lot for this.

Just wondering though, if ever we want to reverse this (in case Blizzard finally fixes it), what do we need to do? Can you list a step by step guide for that as well?

Thank you.
Reply Quote
This was the last replay I posted in the initial thread.
========================================================
Here is a quote from an article called:
"Human Reaction Times as a Response to Delays in Control Systems"

We will call the below numbers time of arrival (TOA):
- auditory stimulus only takes 8-10 ms to reach the brain (Kemp et al., 1973)
- visual stimulus takes 20-40 ms (Marshall et al., 1943)
- touch is intermediate, at 155 ms (Robinson, 1934)


However, when information is streamed continuously to the brain, the time of arrival (TOA) is no longer present. At this point, it depends on how fast your brain can process incoming information, whether it is audible or visual. This is why "stuttering" is a very "subjective" issue.

From the same article above:
Visual
Studies of Virtual Environments show that people are generally able to detect latencies as low as 10 to 20ms (Ellis, Mania, Adelstein, & Hill, 2004). Delay of 25ms did not have a measurable effect on the performance, but 69-75ms delay starts to show an effect (McKenzie, 1993; Jay, Hubbold, 2005). This might be affected by the fact that in visual stimulus, 30 - 40ms delay is short enough to be perceived as a smooth motion (Mateo, 2007).

The above quote suggests that people can detect visual latencies as low as 10ms (100FPS). However, if a stream of video is consistent at 30-40ms (33 FPS - 25 FPS) delays, your brain will trick you into thinking it is a continuous motion (subjectively "smooth"). This proves that people can detect transitions between 100FPS and 33FPS. However, transitions between, say, 200FPS and 120FPS might be undetectable to many.

What do we get from all this ?

1) Your read response time (RRT) should be less than 10ms (best) or 20ms (subjectively acceptable) for you NOT to notice any stuttering :).

2) Even if you have a RRT between 20-30ms, this should not effect your playing performance (don't blame it on stuttering if you die), but some people might still notice some (micro?) stuttering.

3) You might notice audio stuttering better than visual stuttering because information travels faster from your ears to your brain than your eyes to your brain. This is perhaps why people try to change the audio settings first (32bit to 16bit), so that it would be synchronized with visual delays. Not to mention, 16bit is half the information your computer has to process/transfer.

4) You are more likely to notice stuttering if you are running the game at high FPS (80-120FPS). You will need a RRT less than 8ms or no more than 10ms. This is not a problem because USB/SD flash drives give you RRT between 3 and 5 ms or better.

So, like I said earlier, if this fix helped a lot with the stuttering and you are happy with the way it is right now, then don't think about it too much, just enjoy the game :)
Reply Quote
06/07/2012 04:32 PMPosted by jourdy
Just wondering though, if ever we want to reverse this (in case Blizzard finally fixes it), what do we need to do? Can you list a step by step guide for that as well?


You just delete the symbolic link file (with an arrow on it). Then rename the original folder on your HDD back to its original name, that is, "MPQs".

thats it
Reply Quote
80 Tauren Hunter
0
I give my nod of approval to this. It seriously helped, almost eliminated the annoying asset loading stutter entirely.

The lower access time of solid state storage combined with the fact that you can simulatenously read/write system data (using the SATA channel) and read Diablo 3 MPQs (using the USB channel) makes all the difference.

Well done Ed.

Playing in windowed mode with the Resource Monitor running I could see I was getting 20-45 ms read time off my hard drive (even after using an advanced defragment program to move Diablo 3 to the fastest part of the hard drive) and now it's 1-10 ms using the USB thumb drive. Fantastic.

I would like to add one very important point:

You have to restore the hard drive MPQ folder before doing a launcher update and re-copy the MPQ folder back to your USB drive afterwards. Otherwise it will give you an error about not being able to read a file.
Edited by MyKillK#1335 on 6/7/2012 5:25 PM PDT
Reply Quote
This is the second thread since the first thread has reached its limit.
First Thread Link: http://us.battle.net/d3/en/forum/topic/5149178443
Original Post (OP) below:
=========================================================
Stuttering Problem Description:

The problem is that the game does not use "loading screens" to load all needed data from your hard disk drive (HDD) to your memory. Instead, the game is constantly reading from your HDD. Since other background running programs (including Windows) are also using your HDD while you are playing, it will cause your game to stutter. This happens because the game will have to wait for read/write access to your HDD.

Note: any stuttering caused by network lags (latency) is beyond our control. Huge number of enemies on one screen (+animations) will lower your FPS (this is common sense).

=========================================================
How I figured out this was the problem:

Basically, I noticed that my HDD had approximately 250ms (avg) - 1,500ms (max) read response time (RRT) for any read access to MPQ files located inside the folder:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
I've tried defragmenting C: before and after installing Diablo3, but it didn't help with the slow HDD read response time. You can find your read response time in "Resource Monitor" in windows, or just type "res" in start menu. Just put the game in windowed mode and observe "Resource Monitor" > "Disk" > "Response Time" while you are moving your character around the screen and through different areas which normally stutters.

=========================================================
SOLUTION (Windows 7 or Vista):

1) You will need (minimum) 16GB USB flash drive (or 16GB SD card). An 8GB flash drive will not work because it will translate to 7.45GB under windows, which is smaller than needed (7.7GB).

2) Copy the entire "MPQs" folder (7.7GB) from:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
to your USB/SD drive. For me, it was "D:\" drive, so the final result was "D:\MPQs". It might be a different drive name for you, so just use what you get.

3) Rename the original "MPQs" ( located on your HDD) to anything you want.

now the tricky part ...ready ?

4) Go to windows start > and type the following in the search box: cmd and hit (CTRL+SHIFT+ENTER), which will prompt you to run command line in administrator mode.

5) Once in command prompt, type the following (for windows7):
cd "C:\Program Files (x86)\Diablo III\Data_D3\PC"
mklink /j "C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs" "D:\MPQs"

***Note: you cannot "CTRL+V" in command prompt, but you can right click "paste" instead.
***if you don't like this command-line stuff (step 4 and 5) you can jump to windows XP solution, but you have to install an extra program.

If you get a message that says something like: "a symbolic link has been created .." then you did it right. Your done!

=========================================================
SOLUTION (Windows XP) also works for windows 7 (no command-line involved):

Follow steps 1 through 3 from windows 7 solution above
***Note: in windows XP, the "C:\Program Files\...." will not have the (x86) part.

4) Download a free program called "Link Shell Extension" from download.cnet website. This comes in two versions 32bit and 64bit. You have to install the right version depending on which windows XP you are using (most likely 32bit). After you install it, restart your computer.

5) Browse to the folder your created in step 3, for me it was "D:\MPQs", and righ-click on the "MPQs" folder, and select >"Pick Link Source".

6) Go to the original folder location on your hard drive:
"C:\Program Files\Diablo III\Data_D3\PC"
right-click anywhere inside the "PC" folder and select > Drop As ..> Symbolic Link.

Thats it! your done!
=========================================================

Basically, we faked the location of the MPQs directory and relocated it to a flash drive with faster read response than your HDD.

Now, you should have read response times (RRT) around 5ms !

ENJOY "stutter-free" Diablo 3 !!!!!!!!!!!!!!!!!!!


Doing blizzards job, why does the community always fix " Hired programmers jobs duties "

Nice blizzard yet again you live up to my saying " FOR ALL OTHER CONCERNS OF BLIZZARD PRODUCTS CALL 1-not-our-prob "
Reply Quote
Thanks a lot.
Tried it and I had no more stuttering at all. Even with maximum graphics!
Reply Quote
I would like to add one very important point:

You have to restore the hard drive MPQ folder before doing a launcher update and re-copy the MPQ folder back to your USB drive afterwards. Otherwise it will give you an error about not being able to read a file.


but I haven't had any problems updating with the MPQs on the SD flash card. It was all smooth. Hmm.. just wondering if your Windows OS had properly identified the presence of the device at the time of the update ?
Reply Quote
just want to ask after enjoying the smooth game,
how can i safely remove the hard disk?
when i tried to safely remove it, it told me some applications is still using it,
but i cant find the "some application"
Reply Quote
06/07/2012 10:22 PMPosted by Engineer
how can i safely remove the hard disk?


hmmm... I haven't tried to "safely" remove my SD card yet, but it is possible that because the symbolic link is always "active" as seen by the operating system, that the disk would always look as if it is being used by "some program" (that is, windows file system maybe?). In any case, I just manually remove mine without safely removing it (when I know there is no activity being done on it).
Edited by Edstroyer#1680 on 6/8/2012 3:19 AM PDT
Reply Quote
Doing blizzards job, why does the community always fix " Hired programmers jobs duties "

Nice blizzard yet again you live up to my saying " FOR ALL OTHER CONCERNS OF BLIZZARD PRODUCTS CALL 1-not-our-prob "


Cool thing about the community is that we try to help each other because we can and because we enjoy doing it. I'm sure Blizzard is already looking into a permanent solution, and I hope they find one. The weird thing about this HDD stuttering problem, is that it wasn't present on all systems. I have 2 laptops: 4yo and a 1yo. The HDD stuttering is present on the new one but not the old one ...
Reply Quote
just want to say thanks !
today i buy a cheap sandisk 16G usb flash drive
copy d3 folder to this drive and play
no more HDD reading Stuttering now
haha this awesome!
Edited by simonusa#1480 on 6/8/2012 4:50 AM PDT
Reply Quote
A blue said in the 1.03 patch, it should have some performance fixes in it. I hope he/she meant this issue. I've tried everything, nothing works.
Reply Quote
Kudos to the helpful community who stepped up to assist fellow gamers when blizzard fails
but this flash drive thing is just a temp solution, blizzard have responsibility to give us a permanent solution.

I can accept diablo3 may not be the most well designed game in the universe with it's many flaws and limitations eg cant play offline, hacking issues, unbalanced chars...etc etc but I think we deserve a playable game at the very least afterall we did pay for it and its not a cheap game.
Reply Quote
How does this handle patches?
Reply Quote
I'll try this now, but I'm done fiddling with this system to get Diablo 3 to run nicely.

Intel i7, 500GB 7200RPM, GeForce 560M (latest drivers), 8GB DDR3 RAM, Win 7 64bit

Stuttering every 30s for ~half second. Incredibly annoying.
Reply Quote
Funny in all my Gaming history i did a !@#$lot of stuff to make games actually playable ( Fallout 2 german crashed on certain points because it simply missed a ton of gore files - applied a blood patch. Registry adjustments to lower my Ping in WoW.

But flashing my Ipod to NTFS and mirroring gamefiles from it is by far the most akward.

Even funnier ( or sad? ) it works
Reply Quote
I can confirm that this does work.

Blizzard.. what the hell..
Reply Quote
This sounds complicated... but I'll try it tonight but I am already lost by reading this part:

2) Copy the entire "MPQs" folder (7.7GB) from:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
to your USB/SD drive. For me, it was "D:\" drive, so the final result was "D:\MPQs". It might be a different drive name for you, so just use what you get.

3) Rename the original "MPQs" ( located on your HDD) to anything you want.

What is MPQs folder?
Reply Quote
This sounds complicated... but I'll try it tonight but I am already lost by reading this part:

2) Copy the entire "MPQs" folder (7.7GB) from:
"C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
to your USB/SD drive. For me, it was "D:\" drive, so the final result was "D:\MPQs". It might be a different drive name for you, so just use what you get.

3) Rename the original "MPQs" ( located on your HDD) to anything you want.

What is MPQs folder?


He's pointing you right to it. C:\Program Files (x86)\Diablo III\Data_D3\PC\MPQs

The last segment is the MPQs folder. If you aren't comfortable doing this, don't do it.
Reply Quote

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)
Submit Cancel

Reported!

[Close]