(for those who don’t like reading, solution is at the end of the article 🙂 )
I’m not going into the details but it seems that it is known that diablo 2 has a bug in it’s engine that makes it use the entire available CPU, which on single cores results in a 100% CPU usage and on dual cores in a 50% CPU usage of one core.
I’ve tried a lot of solutions, one of which was a process priority program, after which I’ve found out the actual cause which obviously explained why that method didn’t work.
So I figured I could solve this by running the game in a virtual machine. False. Then I figured I could try to use vmware ESX and run in a virtual machine under that for the only reason as ESX allows controlling the resources, mainly I can tell it what amount of the CPU to use for the VM. I spent a week trying to get that to work (I installed ESXi in vmware player, so yes, it works (don’t forget to enable virtualization if you don’t have it enabled in the BIOS)). After some terrible results running the copied VMs I installed a new one from scratch, put diablo on it but, it was again using full CPU however not to run diablo but to run the vm WITH diablo. And beside this, diablo wasn’t even playable. The lag was huge on the menu alone, the game itself was suicide to play.
So I dropped this version and went on to searching which now produce a pretty good result: http://mion.faireal.net/BES/
This little thing will actually get the process to sleep for a little bit, thus resulting in the process using less CPU. And since diablo doesn’t need that much CPU, this is all nice and dandy. THIS really works. Now I’m off to playing diablo, wihout causing my CPU to spit smoke hehehe.
Hey! Thanks for help!
But, in my case, this method makes the game slowly 🙁 Thanks for tip 🙂
depends on the hardware as well and obviously, on how you configure the software. I myself wrote a nice little handy utility that does the job quite well. I just haven’t gotten around to release it. If there is any interest in it I can find some time and release it 😉
It works, to a degree. I’m using it on a dual core Celeron that can handle high temperatures… Unfortunately this game runs the processor so hot the laptop feels like it’s going to melt! So after much messing around, I’m running 1.5.1 beta with -60% and 40ms settings. It’s not perfect but it’s playable and coupled with a laptop stand to help airflow I’ve managed to bring the running temp in D2 down from 75-85C to 60-72C. I’ll quite happily take a few frame hits for that amount of temperature loss!
You could also try playing the game in multiplayer instead of singleplayer. Just host your own game on tcp/ip and the cpu usage becomes normal.
I was playing in multiplayer on battle.net … so not sure if that helps.
I have this issue on Ubuntu 14.04, I playing diablo 2 with WINE (Windows runtime emulator) It’s working good, But eat all the remaining CPU time. I have a problems with this software you posted. I’m actually not running full version of windows.
But I like the idea of cutting gseconds of the process lifecycle. I will try to do it with the native linux process API. But I am not sure if it will happen. gsec limitations working well on linux processes, but this is .exe process.
I never used wine. But, I imagine that at the top, there is a linux process that runs wine, so why not try to limit that one?
Personally, I ended up writing my own windows software to limit CPU for diablo 2.
Also, an idea, is to run a virtual machine with the actual windows and run diablo in that, plus any cpu limitation you find suitable.