• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 20:05
CEST 02:05
KST 09:05
  • 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
TL.net Map Contest #22 - Voting & Ladder Map Selection2Code S Season 2 (2026) - RO8 Preview5[ASL21] Finals Preview: Two Legacies21Code S Season 2 (2026) - RO12 Preview2herO wins GSL Code S Season 1 (2026)7
Community News
StarCraft II 5.0.16 PTR Patch Notes may 26th122Weekly Cups (May 18-25): MaxPax wins doubles0Crank Gathers Season 4: BW vs SC2 Team League5Weekly Cups (May 11-17): Classic wins double1Code S Season 1 (2026) - RO8 Results2
StarCraft 2
General
StarCraft II 5.0.16 PTR Patch Notes may 26th TL.net Map Contest #22 - Voting & Ladder Map Selection The death of cheese, from a professional cheeser. Code S Season 2 (2026) - RO8 Preview TL Poll: How do you feel about the 5.0.16 PTR balance changes?
Tourneys
Maestros of The Game 2 announcement and schedule ! RSL Revival: Season 5 - Qualifiers and Main Event Crank Gathers Season 4: BW vs SC2 Team League GSL Code S Season 2 (2026) Sparkling Tuna Cup - Weekly Open Tournament
Strategy
[G] Having the right mentality to improve
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
The PondCast: SC2 News & Results Mutation # 528 Infection Detected Welcome to the External Content forum Mutation # 527 Hell Train
Brood War
General
FlaShFTW vs A.Alm Grudge Match Event Data needed BGH Auto Balance -> http://bghmmr.eu/ Quality of life changes in BW that you will like ? Soma's ASL Finals Review
Tourneys
[ASL21] Grand Finals [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2 [BSL22] WB Final & LB Semis - Saturday 21:00 CEST
Strategy
Any training maps people recommend? Muta micro map competition [G] Hydra ZvZ: An Introduction Fighting Spirit mining rates
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Warcraft III: The Frozen Throne ZeroSpace Megathread Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
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
Dating: How's your luck? US Politics Mega-thread Russo-Ukrainian War Thread Trading/Investing Thread Things Aren’t Peaceful in Palestine
Fan Clubs
The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books
Sports
McBoner: A hockey love story 2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
Esportsmanship: How to NOT B…
TrAiDoS
Why RTS gamers make better f…
gosubay
ramps on octagon
StaticNine
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6952 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
Braavos36400 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
Replay Cast
00:00
Enki Epic Series #9
CranKy Ducklings14
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech1776
PiGStarcraft516
Ketroc 54
CosmosSc2 44
StarCraft: Brood War
GuemChi 3943
Artosis 532
NaDa 22
ajuk12(nOOB) 11
League of Legends
JimRising 0
Counter-Strike
pashabiceps1960
Fnx 1861
Super Smash Bros
hungrybox253
AZ_Axe147
Mew2King58
Other Games
summit1g13454
shahzam683
uThermal347
C9.Mang0171
Maynarde121
JuggernautJason113
Organizations
Other Games
gamesdonequick569
BasetradeTV255
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• Hupsaiya 89
• RyuSc2 22
• CranKy Ducklings SOOP15
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• blackmanpl 53
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Stunt533
Upcoming Events
Sparkling Tuna Cup
9h 56m
WardiTV Spring Champion…
10h 56m
Maestros of the Game
15h 26m
The PondCast
1d 9h
Kung Fu Cup
1d 10h
uThermal 2v2 Circuit
1d 14h
Maestros of the Game
1d 15h
Replay Cast
1d 23h
Replay Cast
2 days
WardiTV Spring Champion…
2 days
[ Show More ]
Maestros of the Game
2 days
Replay Cast
3 days
uThermal 2v2 Circuit
3 days
Maestros of the Game
3 days
Replay Cast
4 days
Solar vs Classic
uThermal 2v2 Circuit
4 days
GSL
5 days
herO vs Rogue
Maru vs Cure
uThermal 2v2 Circuit
5 days
BSL
5 days
Replay Cast
6 days
Monday Night Weeklies
6 days
Liquipedia Results

Completed

KK 2v2 League Season 1
RSL Revival: Season 5
Heroes Pulsing #1

Ongoing

BSL Season 22
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
CSCL: Masked Kings S4
YSL S3
SCTL 2026 Spring
WardiTV Spring 2026
Maestros of the Game 2
2026 GSL S2
Murky Cup 2026
Stake Ranked Episode 2
CS Asia Championships 2026
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

Upcoming

BSL 22 Non-Korean Championship
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
uThermal 2v2 2026 Main Event
Heroes Pulsing #3
Heroes Pulsing #2
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 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.