Mr Ekted Posted February 11, 2004 Report Posted February 11, 2004 I never claimed your code didn't match SS. I claim you are both wrong. It is possible for your clock to be 80ms ahead of server, and mine to be exact. It is possible for a packet to get from you to me in 70ms. Therefore it is possible for me to get a packet 10ms before it was sent. Therefore your calculations will incorrectly wrap. Clamping or not, this will happen.
Mr Ekted Posted February 11, 2004 Report Posted February 11, 2004 I'm waiting for the Chewbacca Defense...
Excel Posted February 11, 2004 Report Posted February 11, 2004 ...*clears throat*.... Ladies and gentlemen of the supposed jury, I have one final thing I want you to consider: (*pulls down a diagram of Chewie*) this is Chewbacca. Chewbacca is a Wookiee from the planet Kashyyyk, but Chewbacca lives on the planet Endor. Now, think about that. That does not make sense! Why would a Wookiee -- an eight foot tall Wookiee -- want to live on Endor with a bunch of two foot tall Ewoks? That does not make sense! But more importantly, you have to ask yourself: what does that have to do with this case? Nothing. Ladies and gentlemen, it has nothing to do with this case! It does not make sense! Look at me, I'm a lawyer defending a major record company, and I'm talkin' about Chewbacca. Does that make sense? Ladies and gentlemen, I am not making any sense. None of this makes sense. And so you have to remember, when you're in that jury room deliberating and conjugating the Emancipation Proclamation... does it make sense? No! Ladies and gentlemen of this supposed jury, it does not make sense. If Chewbacca lives on Endor, you must acquit! The defense rests. Later in that same episode, Cochran has a change of heart and defends Chef when Chef sues the record company. Again, he uses the Chewbacca Defense, although with some minor changes: Ladies and gentlemen of this supposed jury, you must now decided whether to reverse the decision for my client Chef. I know he seems guilty, but ladies and gentlemen... (*pulls down a diagram of Chewbacca*) This is Chewbacca. Now think about that for one moment -- that does not make sense. Why am I talking about Chewbacca when a man's life is on the line? Why? I'll tell you why: I don't know. It does not make sense. If Chewbacca does not make sense, you must acquit!
Mr Ekted Posted February 11, 2004 Report Posted February 11, 2004 Hahahaha sweet. On that note, let's stop arguing. Move along. Nothing to see here.
catid Posted February 11, 2004 Author Report Posted February 11, 2004 Southpark rules "It is possible for your clock to be 80ms ahead of server, and mine to be exact. It is possible for a packet to get from you to me in 70ms. Therefore it is possible for me to get a packet 10ms before it was sent. Therefore your calculations will incorrectly wrap. Clamping or not, this will happen." cat_time = server_time + 80ek_time = server_timetransit_time <= 7080 > 70true Okay, but it doesn't matter how they wrap so long as the bounds are taken. The values get clamped to zero when they go negative or really large positive, ie. when they wrap. In other words, SubSpace never has negative calculated transit time, so there's no problem. I really don't see what else there is to dispute about this. If you believe that timestamps should be allowed to come in higher than local timestamps, then say that. It's wrong, but at least say what you mean.
Mr Ekted Posted February 11, 2004 Report Posted February 11, 2004 Ok, so you and SS basically say if an event happens in the future, assume it happens NOW. That's fine. I still feel, however, that it's poor coding to allow improper wrapping of the timestamp with the !@#$%^&*umption that the value will be "luckily" handled later. So this disagreement comes down to coding style I guess, which is not worth arguing about.
Smong Posted February 16, 2004 Report Posted February 16, 2004 If anyone else is interested in understanding this issue, just ask.I read this "0x00010001 sent as 0x0001 received at 0x0000ffff becomes 0x00010001 (+1)". How can 0xFFFF + 0x1 = 0x10001? Looks like 0x10000 to me."0x00010008 becomes 0x0000ffff (-1)" so 0x10008 - 0x1 = 0xFFFF?
Mr Ekted Posted February 16, 2004 Report Posted February 16, 2004 It's shorthand notation for what's going on. If you receive a packet at 0x0000ffff and the timestamp is 0x0001, you need to find the closest time to "now" that the timestamp is in full 32 bits. The closest value to 0x0000ffff ending in 0x0001 is 0x00010001, so the net effect is adding 1 to the upper 16-bits of your version of the server time. That make sense?
mister manners Posted February 16, 2004 Report Posted February 16, 2004 just hurry up and build me me modded client so i can flyyyyyyyy.... flllllllllyyyyyyyyyyyyyyyyyyy if i know how to program, i would actually build one :/... \\\ nice work catid, ur a true hero
Recommended Posts