• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 07:09
CEST 13:09
KST 20:09
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro4 Preview: On Course12Code S Season 1 - RO8 Preview7[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16
Community News
Code S Season 1 (2026) - RO8 Results1Weekly Cups (May 4-10): Clem, MaxPax, herO win1Maestros of The Game 2 announcement and schedule !11Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12
StarCraft 2
General
Team Liquid Map Contest #22 - The Finalists Code S Season 1 (2026) - RO8 Results MaNa leaves Team Liquid Weekly Cups (May 4-10): Clem, MaxPax, herO win Code S Season 1 - RO8 Preview
Tourneys
2026 GSL Season 2 Qualifiers Maestros of The Game 2 announcement and schedule ! $5,000 WardiTV Spring Championship 2026 SC2 INu's Battles#16 <BO.9> Master Swan Open (Global Bronze-Master 2)
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
Mutation # 525 Wheel of Misfortune The PondCast: SC2 News & Results Mutation # 524 Death and Taxes Mutation # 523 Firewall
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ vespene.gg — BW replays in browser Pros React to: TvT Masterclass in FlaSh vs Light ASL21 Strategy, Pimpest Plays Discussions Flashes ASL S21 Ro8 Review
Tourneys
[ASL21] Semifinals B [ASL21] Semifinals A [BSL22] RO8 Bracket Stage + Another TieBreaker Small VOD Thread 2.0
Strategy
Fighting Spirit mining rates [G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers Muta micro map competition
Other Games
General Games
Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread Nintendo Switch Thread Starcraft Tabletop Miniature Game PC Games Sales Thread
Dota 2
The Story of Wings Gaming
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread UK Politics Mega-thread YouTube Thread European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1920 users

SC Power Saver

Forum Index > BW General
Post a Reply
1 2 Next All
Physician *
Profile Blog Joined January 2004
United States4146 Posts
Last Edited: 2008-03-31 09:40:35
March 31 2008 09:31 GMT
#1
http://ossguy.com/starcraft_power_saver/ by ossguy

I haven't tried it yet. I don't think many will be using it but who knows, someone out there might find it useful.

Basically it's a tool that patches StarCraft so it uses less CPU time while a game is being played, which reduces power consumption on your computer.

Performance results
StarCraft Power Saver reduces StarCraft's CPU usage from 100% to the following percentages:

* 1-4% on a 2.8 GHz Pentium 4 running Windows XP SP2
* 2-10% on a 1.3 GHz Pentium M running Windows XP SP2
* 25-75% on a 1.3 GHz Pentium M running Wine 0.9.58 on Ubuntu 7.10

+ Show Spoiler +
StarCraft Power Saver
What you should know about StarCraft Power Saver:

* It's a tool that patches StarCraft so it uses less CPU time while a game is being played, which reduces power consumption on your computer.
* It modifies the StarCraft executable. As a result, you should not use Battle.net once the patch is applied (you can revert to a backup if you like).
* It's designed for StarCraft 1.15.2. If you have an older version, please update to 1.15.2 before using it.
* It's run from the command line. To use it, open a Command Prompt and navigate to the folder it's in. Then type starcraft_power_saver "C:\Program Files\Starcraft\StarCraft.exe" to apply the patch. A backup of the executable will be created.
* It wasn't created by and is not supported by Blizzard Entertainment.
* It's only available for Windows (and, by extension, Wine) for now. If there is enough interest, I will consider adding a Mac version.
* The tool and source code are linked below. They can also be browsed using this link.
* Bug reports and feature requests are welcome. Please submit these using the contact information below.


Before you judge it too fast (like I did) read the Problem summary.
"I have beheld the births of negative-suns and borne witness to the entropy of entire realities...."
Physician *
Profile Blog Joined January 2004
United States4146 Posts
Last Edited: 2008-03-31 10:00:16
March 31 2008 09:49 GMT
#2
edit: hum there is another similar program - cpu saviour posted by r1ch
http://www.teamliquid.net/forum/viewmessage.php?currentpage=1&topic_id=66104
"I have beheld the births of negative-suns and borne witness to the entropy of entire realities...."
syplovessy
Profile Joined December 2007
China41 Posts
March 31 2008 09:51 GMT
#3
how to use it @@
i tried, didint work
syplovessy
Profile Joined December 2007
China41 Posts
March 31 2008 09:57 GMT
#4
'E:\Starcraft\Starcraft.exe' is not a StarCraft: Brood War 1.15.2 executable; th
e expected MD5 checksum is 8f35e0719fa15e56b6605e67b19ba97c
Manifesto7
Profile Blog Joined November 2002
Osaka27173 Posts
Last Edited: 2008-03-31 10:53:25
March 31 2008 10:52 GMT
#5
If it worked on battle.net it would be worthwhile for me, but I dont spend any time in single player. Rich's is much less circumspect, as it doen't actually modify bw.
ModeratorGodfather
tec27
Profile Blog Joined June 2004
United States3702 Posts
March 31 2008 11:41 GMT
#6
Yeah, I'd say Rich's is a lot better (and is a BWL plugin so its even easier to turn on/off )
Can you jam with the console cowboys in cyberspace?
ossguy
Profile Joined March 2008
Canada20 Posts
March 31 2008 16:35 GMT
#7
On March 31 2008 18:57 syplovessy wrote:
'E:\Starcraft\Starcraft.exe' is not a StarCraft: Brood War 1.15.2 executable; th
e expected MD5 checksum is 8f35e0719fa15e56b6605e67b19ba97c


Thanks for reporting that. Are you using an English version of StarCraft 1.15.2? If not, it's quite likely that the patch won't apply properly. I'll consider adding support for other languages if there is enough interest.
ossguy
Profile Joined March 2008
Canada20 Posts
March 31 2008 16:41 GMT
#8
On March 31 2008 19:52 Manifesto7 wrote:
If it worked on battle.net it would be worthwhile for me, but I dont spend any time in single player. Rich's is much less circumspect, as it doen't actually modify bw.


Fair enough. I didn't know about CPU Savior before I started making StarCraft Power Saver and I wasn't aware of other ways of making a similar patch. I will look into CPU Savior a bit more to see how it works so I can determine how StarCraft Power Saver compares to it. If they are sufficiently similar, then StarCraft Power Saver may be redundant.

To clarify, StarCraft Power Supply does not limit you to single player. You can also play LAN games with it, just not Battle.net. Mainfesto7 probably knows this, but it might be unclear to other users reading this thread.
Physician *
Profile Blog Joined January 2004
United States4146 Posts
Last Edited: 2008-03-31 23:13:49
March 31 2008 23:12 GMT
#9
On April 01 2008 01:41 ossguy wrote:
Show nested quote +
On March 31 2008 19:52 Manifesto7 wrote:
If it worked on battle.net it would be worthwhile for me, but I dont spend any time in single player. Rich's is much less circumspect, as it doen't actually modify bw.


Fair enough. I didn't know about CPU Savior before I started making StarCraft Power Saver and I wasn't aware of other ways of making a similar patch. I will look into CPU Savior a bit more to see how it works so I can determine how StarCraft Power Saver compares to it. If they are sufficiently similar, then StarCraft Power Saver may be redundant.

To clarify, StarCraft Power Supply does not limit you to single player. You can also play LAN games with it, just not Battle.net. Mainfesto7 probably knows this, but it might be unclear to other users reading this thread.


we are happy just by the mere fact you're around here and made the effort for our game : )
"I have beheld the births of negative-suns and borne witness to the entropy of entire realities...."
evanthebouncy!
Profile Blog Joined June 2006
United States12796 Posts
April 01 2008 01:52 GMT
#10
Man I was hoping for a SC screen saver with customizable replays to play and auto screen scroll for hottest actions...
Life is run, it is dance, it is fast, passionate and BAM!, you dance and sing and booze while you can for now is the time and time is mine. Smile and laugh when still can for now is the time and soon you die!
comabreaded
Profile Blog Joined July 2003
United States2166 Posts
April 01 2008 02:14 GMT
#11
I wish Blizz would somehow implement this.
I put the fu in fun
thunk
Profile Blog Joined March 2008
United States6233 Posts
April 01 2008 02:22 GMT
#12
I'm curious if ossguy has written other bw software. Have you?
Every time Jung Myung Hoon builds a vulture, two probes die. || My post count was a palindrome and I was never posting again.
R1CH
Profile Blog Joined May 2007
Netherlands10342 Posts
April 01 2008 03:20 GMT
#13
Your technique looks better - just sleeping once per loop (CPU Savior sleeps on every GetTickCount call), but Sleeping at all is a problematic method since it stalls the message loop, meaning high Hz mice might suffer from input latency. You can reduce the 10-15ms granularity with a timeBeginPeriod call as CPU Savior does. CPU Savior patches the IAT to avoid modifying BW code, but modifying BW code after connecting to bnet should be fairly safe unless Warden decides to go after you, meaning this would work well as a BWL plugin - no injection needed, just Read/WriteProcessMemory.
AdministratorTwitter: @R1CH_TL
TL+ Member
ossguy
Profile Joined March 2008
Canada20 Posts
April 01 2008 18:17 GMT
#14
On April 01 2008 11:14 comabreaded wrote:
I wish Blizz would somehow implement this.


So do I. It would require a bit of a redesign of their game loop, but it is still a manageable fix. In my opinion, a proper redesign of the game loop would look like the following:

setTimer(...);
while (gameNotOver()) {
      GetMessage(lpMsg, ...);
      switch (lpMsg.message) {
            case KEYBOARD_EVENT: ...
            case MOUSE_EVENT: ...
            case TIMER_EVENT:
                  redrawScreen();
                  computeAI();
                  resetTimer();
                  ...
            case ...
      }
}

StarCraft would use the timer to tell it when to redraw the screen. The timer frequency would specify how many frames per second StarCraft would run at. This could be configurable in the game or hardcoded to a particular value that runs well on most systems.

I'd be happy to talk about this proposal further, especially with people from Blizzard.
ossguy
Profile Joined March 2008
Canada20 Posts
Last Edited: 2008-04-02 04:17:50
April 02 2008 03:56 GMT
#15
On April 01 2008 11:22 thunk wrote:
I'm curious if ossguy has written other bw software. Have you?


The other StarCraft-specific software I've written was made primarily for testing and benchmarking to see how effective the patch was. I did write a patch for Wine that allows users to specify a refresh rate since Wine sometimes picks a low refresh rate when games like StarCraft change the resolution. More information about the patch, including how to use it, are available on my blog. If you just want to use it, you can skip the first two paragraphs.

The benchmarking tools I made let me know how many times StarCraft is going through the game loop in a given amount of time. I did this by inserting a counter in the game loop and then using ReadProcessMemory from another application to see the value of the counter as it changed while StarCraft was running. Making ReadProcessMemory work required disabling some of StarCraft's security features. Because of that and because I used the same method of modifying StarCraft (changing the StarCraft executable directly), these changes also would not work with Battle.net.

In general, I try to stay away from making fixes to closed source software such as StarCraft because it is much more time-consuming than making fixes to open source software and it is much harder to fix things "the right way" since I have to guess what the assembly code is trying to do. It would be much easier for me to make changes to StarCraft if it were open source, but the model that Blizzard Entertainment chooses to sell its products doesn't permit that.
Gokey
Profile Joined November 2006
United States2722 Posts
April 02 2008 04:07 GMT
#16
seriously, everytime i run broodwars my cpu temperature spikes, even though it's a 10 year old game... =(
ossguy
Profile Joined March 2008
Canada20 Posts
April 02 2008 04:16 GMT
#17
On April 01 2008 12:20 R1CH wrote:
Your technique looks better - just sleeping once per loop (CPU Savior sleeps on every GetTickCount call), but Sleeping at all is a problematic method since it stalls the message loop, meaning high Hz mice might suffer from input latency.


Certainly. If I had more time, I would try to modify StarCraft using an event-based game loop as I described above, but it's just not feasible without the source code as I would have to spend many hours just figuring out how to refactor the code to make the event-based system work. It's unfortunate we have to rely on Sleep when there are much better ways of doing it.

You can reduce the 10-15ms granularity with a timeBeginPeriod call as CPU Savior does.


I considered doing this, but I wasn't sure if it would work because I couldn't find any references to other functions in the winmm library, suggesting that it wasn't linked into the StarCraft executable so I wouldn't be able to use timeBeginPeriod. Furthermore, it appeared that StarCraft worked fine even with the 10-15ms granularity so I didn't see a need to fix it further. However, if there are reports that StarCraft Power Saver is slow without timeBeginPeriod, then I would consider implementing it.

I couldn't find the place where you call timeBeginPeriod in your code; can you point out where in the code that's done?

CPU Savior patches the IAT to avoid modifying BW code, but modifying BW code after connecting to bnet should be fairly safe unless Warden decides to go after you, meaning this would work well as a BWL plugin - no injection needed, just Read/WriteProcessMemory.


That's an interesting mechanism for patching the game. I wish such hackery weren't required. It's things like this that really make me want to switch to open source RTSes like Bos Wars, Globulation 2, or Dark Oberon. If I have a problem with any of these, I can just fix the source code the right way. Unlike with StarCraft, no reverse engineering or protection-circumventing hacks are required.
ossguy
Profile Joined March 2008
Canada20 Posts
April 02 2008 04:21 GMT
#18
On April 02 2008 13:07 Gokey wrote:
seriously, everytime i run broodwars my cpu temperature spikes, even though it's a 10 year old game... =(


It's partly because StarCraft is 10 years old that it uses the CPU the way it does. 10 years ago, people didn't care that much about saving power because the average computer wasn't that power-hungry and laptops were not nearly as ubiquitous as they are today.

I would encourage you to try StarCraft Power Saver and CPU Saver to see if they help with your CPU temperature issues. Ideally Blizzard would fix this the right way, but until then, all we can do is work around it.
EvilTeletubby
Profile Blog Joined January 2004
Baltimore, USA22259 Posts
April 02 2008 04:26 GMT
#19
On April 01 2008 12:20 R1CH wrote:
Your technique looks better - just sleeping once per loop (CPU Savior sleeps on every GetTickCount call), but Sleeping at all is a problematic method since it stalls the message loop, meaning high Hz mice might suffer from input latency. You can reduce the 10-15ms granularity with a timeBeginPeriod call as CPU Savior does. CPU Savior patches the IAT to avoid modifying BW code, but modifying BW code after connecting to bnet should be fairly safe unless Warden decides to go after you, meaning this would work well as a BWL plugin - no injection needed, just Read/WriteProcessMemory.


I'm ashamed to say I understood virtually none of that.

How did both of you guys get into coding, if you don't mind me asking?
Moderatorhttp://carbonleaf.yuku.com/topic/408/t/So-I-proposed-at-a-Carbon-Leaf-concert.html ***** RIP Geoff
Ilikestarcraft
Profile Blog Joined November 2004
Korea (South)17741 Posts
April 02 2008 04:37 GMT
#20
On April 02 2008 13:26 EvilTeletubby wrote:
Show nested quote +
On April 01 2008 12:20 R1CH wrote:
Your technique looks better - just sleeping once per loop (CPU Savior sleeps on every GetTickCount call), but Sleeping at all is a problematic method since it stalls the message loop, meaning high Hz mice might suffer from input latency. You can reduce the 10-15ms granularity with a timeBeginPeriod call as CPU Savior does. CPU Savior patches the IAT to avoid modifying BW code, but modifying BW code after connecting to bnet should be fairly safe unless Warden decides to go after you, meaning this would work well as a BWL plugin - no injection needed, just Read/WriteProcessMemory.


I'm ashamed to say I understood virtually none of that.

How did both of you guys get into coding, if you don't mind me asking?

Me too T.T After using chaos launcher it got me interested but i have no idea what they're talking about;;
ils
"Nana is a goddess. Or at very least, Nana is my goddess." - KazeHydra
1 2 Next All
Please log in or register to reply.
Live Events Refresh
RSL Revival
10:00
Season 5: Playoffs Day 1
herO vs SHINLIVE!
Tasteless734
Ryung 515
IntoTheiNu 482
TKL 187
IndyStarCraft 92
Rex82
CranKy Ducklings77
3DClanTV 33
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Tasteless 734
Ryung 515
TKL 187
IndyStarCraft 92
Rex 82
StarCraft: Brood War
Calm 5273
Britney 5077
Horang2 1555
firebathero 1324
Jaedong 813
Hyuk 478
EffOrt 289
BeSt 282
Mini 260
Snow 251
[ Show more ]
Light 216
actioN 203
scan(afreeca) 190
Soulkey 160
ggaemo 144
Sea 144
ZerO 117
Soma 117
ToSsGirL 64
Liquid`Ret 48
hero 48
Mind 47
Shinee 45
Rush 44
Sexy 42
Backho 37
Movie 32
Sacsri 31
soO 30
910 22
Shine 19
Bale 16
sorry 14
yabsab 13
Barracks 9
Sea.KH 9
JulyZerg 8
zelot 8
ajuk12(nOOB) 6
Icarus 2
Last 0
Dota 2
Gorgc3250
League of Legends
JimRising 365
Counter-Strike
olofmeister2357
shoxiejesuss1324
allub162
markeloff147
Super Smash Bros
Mew2King71
Westballz19
Other Games
gofns18404
singsing2236
DeMusliM284
byalli258
B2W.Neo249
crisheroes237
monkeys_forever186
Lowko171
XcaliburYe75
ZerO(Twitch)11
Organizations
Counter-Strike
PGL22759
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 16 non-featured ]
StarCraft 2
• StrangeGG 38
• CranKy Ducklings SOOP6
• Adnapsc2 4
• sooper7s
• Migwel
• LaughNgamezSOOP
• IndyKCrew
• Kozan
• intothetv
• AfreecaTV YouTube
StarCraft: Brood War
• escodisco2243
• iopq 7
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos1025
Upcoming Events
OSC
1h 51m
Big Brain Bouts
4h 51m
sebesdes vs Iba
Percival vs YoungYakov
Reynor vs GgMaChine
Korean StarCraft League
15h 51m
RSL Revival
22h 51m
Clem vs Rogue
Bunny vs Lambo
IPSL
1d 4h
Dewalt vs nOmaD
Ret vs Cross
BSL
1d 7h
Bonyth vs Doodle
Dewalt vs TerrOr
GSL
1d 20h
Cure vs herO
SHIN vs Maru
IPSL
2 days
Bonyth vs Napoleon
G5 vs JDConan
BSL
2 days
OyAji vs JDConan
DragOn vs TBD
Replay Cast
2 days
[ Show More ]
Monday Night Weeklies
3 days
Replay Cast
3 days
The PondCast
3 days
GSL
4 days
Replay Cast
5 days
GSL
5 days
Replay Cast
6 days
Sparkling Tuna Cup
6 days
Liquipedia Results

Completed

Proleague 2026-05-13
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
Escore Tournament S2: W7
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
Heroes Pulsing #1
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

YSL S3
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
WardiTV Spring 2026
2026 GSL S2
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.