• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 12:37
CEST 18:37
KST 01:37
  • 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] Ro24 Preview Pt2: News Flash8[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy16ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20
Community News
Weekly Cups (March 23-29): herO takes triple6Aligulac acquired by REPLAYMAN.com/Stego Research8Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool49Weekly Cups (March 9-15): herO, Clem, ByuN win4
StarCraft 2
General
What mix of new & old maps do you want in the next ladder pool? (SC2) Team Liquid Map Contest #22 - Presented by Monster Energy Aligulac acquired by REPLAYMAN.com/Stego Research Weekly Cups (March 23-29): herO takes triple herO wins SC2 All-Star Invitational
Tourneys
RSL Season 4 announced for March-April Sparkling Tuna Cup - Weekly Open Tournament StarCraft Evolution League (SC Evo Biweekly) WardiTV Mondays World University TeamLeague (500$+) | Signups Open
Strategy
Custom Maps
[M] (2) Frigid Storage Publishing has been re-enabled! [Feb 24th 2026]
External Content
Mutation # 519 Inner Power The PondCast: SC2 News & Results Mutation # 518 Radiation Zone Mutation # 517 Distant Threat
Brood War
General
How can I add timer&apm count ? ASL21 General Discussion Gypsy to Korea A cwal.gg Extension - Easily keep track of anyone BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[Megathread] Daily Proleagues Escore Tournament StarCraft Season 2 [ASL21] Ro24 Group F [ASL21] Ro24 Group E
Strategy
Fighting Spirit mining rates What's the deal with APM & what's its true value Simple Questions, Simple Answers
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Starcraft Tabletop Miniature Game General RTS Discussion Thread Darkest Dungeon
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
League of Legends
G2 just beat GenG in First stand
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
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread The Games Industry And ATVI European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread Formula 1 Discussion Cricket [SPORT] Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Funny Nicknames
LUCKY_NOOB
Money Laundering In Video Ga…
TrAiDoS
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2091 users

Who the hell coded 1.16?

Blogs > R1CH
Post a Reply
1 2 3 4 5 6 7 8 Next All
R1CH
Profile Blog Joined May 2007
Netherlands10342 Posts
December 16 2008 10:18 GMT
#1
So I finally got around to taking a look at the lag issues in 1.16. Seems someone at Blizzard thought it would be a good idea to throw a 10ms delay into the game loop AND a 5ms delay after processing the Windows message queue. 15ms of delays in a game that previously has 0ms of delays can mess up quite a few things, as evidenced by the problems the early versions of CPU Savior had. For a game with a pro scene like Starcraft, this really should never have made it past QA, if there even was any.

Why 15ms? Who knows. The most you need is 1ms to stop 100% CPU usage, which is what CPU Savior uses. They also added some delays onto the bnet screens (the game loop isn't run on the bnet screen, so the 15ms delays wouldn't work), very similar to the comments I made in the CPU Savior source code - except instead of delaying on infrequently-used parts of the code, there is a 5ms delay on code that is run very often - hence why the bnet screens feel so sluggish.

So what happens now? I could make a patch to fix the lag issues in 1.16, but what would that achieve? Iccup already is remaining on 1.15.3, KeSPA has shunned 1.16 and I would hope Blizzard already realizes what a disaster of a patch 1.16 is. Why are they taking so long to fix what I could do in a few hours? And who is responsible for this mess in the first place?

****
AdministratorTwitter: @R1CH_TL
TL+ Member
Carnac
Profile Blog Joined December 2003
Germany / USA16648 Posts
December 16 2008 10:19 GMT
#2
random interns doing the patches now huh
ModeratorHi! I'm a .signature *virus*! Copy me into your ~/.signature to help me spread!
Plexa
Profile Blog Joined October 2005
Aotearoa39261 Posts
December 16 2008 10:23 GMT
#3
First step in making SC obsolete in preparation for SC2
Administrator~ Spirit will set you free ~
Bockit
Profile Blog Joined November 2004
Sydney2287 Posts
December 16 2008 10:23 GMT
#4
So when is Bliz hiring R1CH and taking him away from us?
Their are four errors in this sentance.
Plexa
Profile Blog Joined October 2005
Aotearoa39261 Posts
December 16 2008 10:24 GMT
#5
Fuck what we need is a huge petition -.-;
Administrator~ Spirit will set you free ~
Aerox
Profile Blog Joined September 2004
Malaysia1213 Posts
December 16 2008 10:24 GMT
#6
"Eyes in the sky."
R1CH
Profile Blog Joined May 2007
Netherlands10342 Posts
December 16 2008 10:25 GMT
#7
On December 16 2008 19:24 Plexa wrote:
Fuck what we need is a huge petition -.-;

I'm sure they are very aware of the problem - if KeSPA aren't using 1.16 they surely have some contacts there to figure out why.
AdministratorTwitter: @R1CH_TL
TL+ Member
stenole
Profile Blog Joined April 2004
Norway869 Posts
December 16 2008 10:29 GMT
#8
Patch 1.16.1 is something we can all put on our christmas wishlists. I would want latency changer on the patch too, but I'm scared the programmers would mess that up also.
R1CH
Profile Blog Joined May 2007
Netherlands10342 Posts
December 16 2008 10:30 GMT
#9
As far as I'm aware there are already 1.16 versions of latency changer and other MoC plugins, but you have to download them manually.
AdministratorTwitter: @R1CH_TL
TL+ Member
freelander
Profile Blog Joined December 2004
Hungary4707 Posts
December 16 2008 10:33 GMT
#10
r1ch

I am just a beginner programmer so to say, how could you know the exact numbers of delaying?
I am curious
And all is illuminated.
stenole
Profile Blog Joined April 2004
Norway869 Posts
December 16 2008 10:35 GMT
#11
True, but having it part of the standard package would be a bonus (if it worked like it was supposed to). Some of us enjoy playing random public games now and then and it would be nice to have these be closer to a LAN experience.
Nyovne
Profile Joined March 2006
Netherlands19138 Posts
December 16 2008 10:35 GMT
#12
Decompiling?

Nice blog btw R1CH, and Plexa it's all a conspiracy!!
ModeratorFor remember, that in the end, some are born to live, others born to die. I belong to those last, born to burn, born to cry. For I shall remain alone... forsaken.
SpiritoftheTunA
Profile Blog Joined August 2006
United States20903 Posts
December 16 2008 10:38 GMT
#13
amen
posting on liquid sites in current year
R1CH
Profile Blog Joined May 2007
Netherlands10342 Posts
Last Edited: 2008-12-16 10:42:34
December 16 2008 10:41 GMT
#14
On December 16 2008 19:33 freelander wrote:
r1ch

I am just a beginner programmer so to say, how could you know the exact numbers of delaying?
I am curious

I used OllyDbg to disassemble BW while it was running and added breakpoints on Sleep until I found the main culprits:

CPU Disasm
004D1B69 6A 05 push 5
004D1B6B |. FF15 0CE14F00 call dword ptr ds:[<&KERNEL32.Sleep>]

This one is right after the Win32 message loop, so I'm assuming its some kind of delay executed when there are no pending messages. The above ASM code is equivalent to Sleep (5) in C.

CPU Disasm
004D92AB |. FF15 C4E04F00 call dword ptr ds:[<&KERNEL32.GetTickCount>]
004D92B1 |. 8B15 4C636D00 mov edx,dword ptr ds:[6D634C]
004D92B7 |. 8BC8 mov ecx,eax
004D92B9 |. 2BCA sub ecx,edx
004D92BB |. 83F9 0A cmp ecx,0A
004D92BE |. 73 16 jnb short 004D92D6
004D92C0 |. B8 0A000000 mov eax,0A
004D92C5 |. 2BC1 sub eax,ecx
004D92C7 |. 3D C8000000 cmp eax,0C8
004D92CC |. 73 07 jnb short 004D92D5
004D92CE 50 push eax
004D92CF FF15 0CE14F00 call dword ptr ds:[<&KERNEL32.Sleep>]
004D92D5 |> C3 retn

This is the nasty code - it checks how much time has passed since the game last checked the time (GetTickCount). If it's less than 10ms, it sleeps for whatever duration is needed to make 10ms with some kind of sanity check where it won't sleep for more than 200ms.
AdministratorTwitter: @R1CH_TL
TL+ Member
Ganfei
Profile Blog Joined August 2008
Taiwan1439 Posts
December 16 2008 10:46 GMT
#15
I'm glad someone knowledgeable looked at this patch and can actually say what is wrong with it. It has totally killed bnet for me and I resent the fact that Blizzard could be so irresponsible as to release such a crappy patch without apparently having any review or testing of it.
You are crushing me like a cheese sandwich
Nyovne
Profile Joined March 2006
Netherlands19138 Posts
December 16 2008 10:56 GMT
#16
It's a kind of magic.
ModeratorFor remember, that in the end, some are born to live, others born to die. I belong to those last, born to burn, born to cry. For I shall remain alone... forsaken.
Hot_Bid
Profile Blog Joined October 2003
Braavos36390 Posts
December 16 2008 10:56 GMT
#17
hahah i like reading r1chs posts its like another language
@Hot_Bid on Twitter - ESPORTS life since 2010 - http://i.imgur.com/U2psw.png
Hypnosis
Profile Blog Joined October 2007
United States2061 Posts
December 16 2008 11:00 GMT
#18
How the hell do you learn all this..

sick
Science without religion is lame, Religion without science is blind
IzzyCraft
Profile Blog Joined June 2007
United States4487 Posts
December 16 2008 11:03 GMT
#19
Yup he sees something that more or less no one else does apparently including the blizz people that coded it.
I have ass for brains so,
even when I shit I'm droping knowledge.
Doso
Profile Joined March 2008
Germany769 Posts
December 16 2008 11:04 GMT
#20
The scary part is, i can read some of that assembler code. Although i've never disassembled any x86 code - just had basic 8081 assembler in university.

Anyways ... hope for 1.16.1 - I am noot and play bnet so 1.15.3 isnt an option.
1 2 3 4 5 6 7 8 Next All
Please log in or register to reply.
Live Events Refresh
Big Brain Bouts
16:00
#111
Bly vs TBD
TriGGeR vs Lambo
RotterdaM693
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 693
Hui .268
ProTech118
trigger 59
UpATreeSC 46
BRAT_OK 26
StarCraft: Brood War
Britney 26000
Calm 8140
Horang2 1878
Mini 1194
Soma 614
BeSt 496
firebathero 476
Snow 419
actioN 333
hero 264
[ Show more ]
JYJ 82
Leta 76
Soulkey 67
ggaemo 66
Sea.KH 57
Sharp 53
PianO 52
Hyun 35
Sexy 27
Aegong 27
Backho 22
Rock 21
Shine 19
Hm[arnc] 18
yabsab 12
GoRush 12
Terrorterran 12
910 11
soO 11
Sacsri 10
IntoTheRainbow 10
zelot 8
Dota 2
Gorgc5216
420jenkins276
Counter-Strike
fl0m1187
shoxiejesuss742
Heroes of the Storm
Liquid`Hasu184
MindelVK7
Other Games
gofns7565
FrodaN1261
B2W.Neo1065
Grubby422
Livibee209
crisheroes167
Fuzer 152
ArmadaUGS143
KnowMe116
QueenE78
Trikslyr51
Organizations
StarCraft 2
ComeBackTV 569
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 18 non-featured ]
StarCraft 2
• StrangeGG 73
• LUISG 29
• Kozan
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 3476
• lizZardDota282
League of Legends
• Nemesis4473
• Jankos2388
Other Games
• WagamamaTV349
• Shiphtur128
Upcoming Events
Replay Cast
7h 23m
RSL Revival
17h 23m
Maru vs MaxPax
BSL
1d 2h
RSL Revival
1d 14h
Cure vs Rogue
uThermal 2v2 Circuit
1d 21h
BSL
2 days
Afreeca Starleague
2 days
Wardi Open
2 days
Replay Cast
3 days
Sparkling Tuna Cup
3 days
[ Show More ]
The PondCast
5 days
Replay Cast
6 days
Liquipedia Results

Completed

CSL Season 20: Qualifier 1
WardiTV Winter 2026
NationLESS Cup

Ongoing

BSL Season 22
CSL Elite League 2026
ASL Season 21
CSL Season 20: Qualifier 2
StarCraft2 Community Team League 2026 Spring
RSL Revival: Season 4
Nations Cup 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026

Upcoming

CSL 2026 SPRING (S20)
Acropolis #4
IPSL Spring 2026
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 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.