I finally decided to do something about StarCraft’s CPU hogging, which, among other things, causes my battery to drain much faster than it should when I’m away from an outlet. The result is StarCraft Power Saver, a tool that patches StarCraft to use less CPU time. For full details, including download links and a summary of the problem, see the StarCraft Power Saver web page. Any public questions or concerns about the tool can be posted as a comment to this blog entry.
About me
Actionstream
On December 31, 2015
- ossguy posted Maple Leaf train - NYC to Toronto trip report @ December 31, 2015 5:59 pm
On December 24, 2014
- ossguy posted Toward a better world: priorities in free software and privacy projects @ December 24, 2014 6:11 pm
On December 31, 2013
- ossguy posted iNum SMS/voice support and pricing matrix for various Canadian and US carriers @ December 31, 2013 10:30 pm
On May 30, 2013
- ossguy posted, “Looking forward to the Identi.ca transition to pump.io this weekend!” @ May 30, 2013 2:16 am
On May 21, 2013
- ossguy posted, “@brainwane Is it just me or is the Subscribe button on http://ur1.ca/dypri inactive? Click and Enter did nothing in Firefox and Chromium.” in reply to @ May 21, 2013 4:46 pm
On May 14, 2013
- ossguy posted, “The #lfeeus #wifi does have good speeds: 5-9 Mbps down, 15 Mbps up. Probably shared symmetric pipe with few people uploading, like at #SEA.” @ May 14, 2013 4:10 pm
- ossguy posted, “Seems the #wifi at #lfeeus this year has port 443 filtering (HTTPS works, SSH never gets welcome string). Port 22 fine, some others blocked.” @ May 14, 2013 4:02 pm
On May 12, 2013
- ossguy posted, “Appreciating the gratis #wifi at #SEA: no ICMP/port blocks and getting 1 Mbps down, 2 Mbps up. SEA could teach #NYC airports some lessons.” @ May 12, 2013 8:06 pm
- ossguy posted, “Made it to #SEA; waiting for flight to #JFK. Probably not doing domestic flight with land crossing from BC again (search was too invasive).” @ May 12, 2013 8:04 pm
On May 2, 2013
- ossguy posted, “@jxself Yeah, it appears I got quite lucky with the weather. It will make the hiking/kayaking/etc. all the better. I can’t wait!” in reply to @ May 2, 2013 9:39 pm
Blogroll
License
Copyright © 2006-2017 Denver Gingerich.

This work by Denver Gingerich is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. Comments are owned by their respective authors and might not be covered by the same license.
It’s a very impotent improvement for me but I ‘ve got a newer version Starcraft BW 1.15.2.1 not 1.15.2.0 your patch require. Can you change it lately. Please 🙂 Thank you for your work!
1.15.2.1 does not appear to be released on the Blizzard FTP server so I suspect it’s an update you can only get through Battle.net. I don’t use Battle.net so I can’t get the update. When the update is released on the Blizzard FTP server, then I can update my version of StarCraft and make a fix for StarCraft Power Saver. If you know of an official Blizzard page where I can download the 1.15.2.1 patch, let me know and I’ll get it from there.
If there are people out there that are using 1.15.2.1 and want to make a fix for StarCraft Power Saver themselves, they are free to do so since StarCraft Power Saver is released under the GNU GPL. Although it is not required, I would appreciate if people submitted fixes for StarCraft Power Saver to me so I can include them on my web site.
It complains: ‘StarCraft.exe’ is not a StarCraft: Brood War 1.15.2 executable; the expected MD5 checksum is 8f35e0719fa15e56b6605e67b19ba97c
My StarCraft.exe has the MD5 checksum af031ff7d41610c08a00d28d112965c2.
I installed StarCraft and Broodwar from CD and updated with http://ftp.blizzard.com/pub/broodwar/patches/PC/BW-1152.exe (7ab7aab13b2dbfe6749e61a8482df7e5).
You are using the German version of StarCraft, which StarCraft Power Saver unfortunately doesn’t support. This issue has been reported previously to me. StarCraft Power Saver currently only supports the English version of StarCraft. This is because I haven’t had the chance to fix it so it ignores the language-specific parts of the StarCraft executable in its check.
I tried to fix this issue a while ago, but ran into trouble integrating a library for dissecting the executable. libbfd seems to do what I want, but I had trouble compiling it. I will look into this problem in the next couple days and try again to fix it. If you know of a library or some sample code that could help me find the code section of an executable, please let me know.
Yes, I am using the German verion. But I just asked a friend of mine to install his English StarCraft version, patch it, and send me the MD5 checksum.
It’s the same as mine.
He did send me a screenshot too, so I could verify it’s really the English version.
That’s strange; I had never before heard of an English version with a different checksum. I guess that’s all the more reason to fix StarCraft Power Saver so it recognizes other executables.
Maybe Blizzard exchanged BW-1152.exe … first it was 1.15.2.0, and now it is 1.15.2.1…
I don’t think so. The BW-1152.exe file on their FTP server is the same one I downloaded a while ago, which upgraded me to 1.15.2 (not 1.15.2.1). I don’t believe it’s possible to get to 1.15.2.1 with a Blizzard download; you have to use Battle.net.
This issue seems separate from the main issue, though. It doesn’t sound like you’re using 1.15.2.1.
BW-1152.exe contains an MPQ archive. I extracted the biggest file in it with WinMPQ, then removed 24 bytes at the beginning of the extracted file and generated an MD5 checksum: af031ff7d41610c08a00d28d112965c2. What does this mean? The patch contains the full StarCraft.exe.
Furthermore, when I open the Properties dialog for StarCraft.exe, on the version page it says: 1.15.2.1 (top), below it says just 1.15.2 for some fields. When I start it, it says 1.15.2 on the main menu.
I don’t have an easy way to check that information as I’m using Wine. It’s possible that mine also lists itself as 1.15.2.1. However, my English version executable, updated with BW-1152.exe (MD5: 7ab7aab13b2dbfe6749e61a8482df7e5), has a different checksum than yours. And it’s not the same as the one you extracted from the patch. I’m not sure why this is.
Once StarCraft Power Saver is updated, it shouldn’t matter what your executable’s checksum is, as long as the checksum of the code section within the executable is the same (which it should be).
Try this:
hexdump -C StarCraft.exe | grep -F “bd 04 ef fe”
00128ed0 bd 04 ef fe 00 00 01 00 0f 00 01 00 01 00 02 00 |…………….|
bd 04 ef fe = dwSignature
00 00 01 00 = dwStrucVersion
0f 00 01 00 = 15, 1 => 1.15.
01 00 02 00 = 1, 2 => 2.1
==> 1.15.2.1
(inspired by http://blogs.msdn.com/oldnewthing/archive/2006/12/21/1340571.aspx)
I have the same sequence of 16 bytes as you so I must also have version 1.15.2.1. However, “bd 04 ef fe” starts at 0012990c for me, not 00128ed0. So our binaries are definitely different in non-trivial ways.
Please reconsider to add a patch for 1.15.2.1
I have an English version of Starcraft: Brood War with the 1.15.2.1 patch applied.
The error: StarCraft.exe is not a StarCraft: Brood War 1.15.2 executable; the expected MD5 checksum is 8f35e0719a15e56b6605e67b19ba97c
Any way of working around this?
Thanks in advance.
For those having trouble with StarCraft Power Saver as described in the above comments, please see StarCraft Power Saver needs your help. It tells you how to contribute the information I need in order to fix StarCraft Power Saver for you.