StarCraft Power Saver 0.1 released

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.

16 Responses to “StarCraft Power Saver 0.1 released”


  • 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.

Leave a Reply to ossguy