Hi, dear reader.
I suppose you're aware of that disastrous glitch that rewarded many players a lifetime ban, right ? Maybe you want to know what the glitch exactly does, don't you ?
Well, you're here for some reading. Let me explain you that glitch in detail.
As you know, whenever you do something wrong in SSB4's online mode, you get a temporary ban. In a fact, you're not really banned. It's just a chunk of code in the game that asks the SSB4 server to know if a player is banned.
See, to go further, this variable is what we call in programming an "Integer".
This might sounds a bit weird to you, if you have never tried programming, but to make it sound simple, just consider it a variable.
And see, when that "isThisPlayerBanned" variable equals 1 (aka true), the 3DS also asks for the "timeBeforeUnban" variable.
The later is a 32-bit variable. So, what does it means ? It means that this variable can range from -2 147 483 648 to 2 147 483 647 (0 included.)
But, what would be the point of banning a player for a negative value of time ? You agree with me, that would be nonsense.
So, to resolve this, we have what we call "unsigned" variables. Unsigned variables are variables, but they can only be positive. And, as you expected, "timeBeforeUnban" is a 32-bit, unsigned variable.
Meaning ? Well, it can range from 0 to 4 294 967 295 (2^32). Huge number, isn't it ?
Now, you know how computers count. But, what happens if I apply a negative value to an unsigned variable ? The 3DS would crash, right ? Well, you're wrong. What it'll do is take the maximal value of a variable (here, 2^32), and just subtract 1 from it. And that's what the glitch does.
The glitch, for some weird reason, want to store the value "-1" in our "timeBeforeUnban" variable. But, as we said earlier, this variable is a 32-bit Integer, and only accepts positive values. And now, the glitch applies -1 to it. While it wouldn't mess up with already banned players,
it messes up with players that will be banned.
Why ? Because since the value of "timeBeforeUnban" equals 0 in the case of a non-banned player or an unbanned one, applying -1 to it means 2^32-1. So, 4 294 967 295 -1.
So, it equals 4 294 967 294. And since this value is a defined time in seconds, you just have to do the remaining math to notice that it equals
71582788,23... minutes. Or 1193046,47... hours. Or 49710,26... days.
Meaning that it equals 136,19 years. Those guys will be bored for the rest of their lives, it seems.
That's all ! Now, you know how the glitch works ! So, I guess you'll have to be really careful if you do not want to trigger the lifetime ban glitch !
I suppose you're aware of that disastrous glitch that rewarded many players a lifetime ban, right ? Maybe you want to know what the glitch exactly does, don't you ?
Well, you're here for some reading. Let me explain you that glitch in detail.
As you know, whenever you do something wrong in SSB4's online mode, you get a temporary ban. In a fact, you're not really banned. It's just a chunk of code in the game that asks the SSB4 server to know if a player is banned.
See, to go further, this variable is what we call in programming an "Integer".
This might sounds a bit weird to you, if you have never tried programming, but to make it sound simple, just consider it a variable.
And see, when that "isThisPlayerBanned" variable equals 1 (aka true), the 3DS also asks for the "timeBeforeUnban" variable.
The later is a 32-bit variable. So, what does it means ? It means that this variable can range from -2 147 483 648 to 2 147 483 647 (0 included.)
But, what would be the point of banning a player for a negative value of time ? You agree with me, that would be nonsense.
So, to resolve this, we have what we call "unsigned" variables. Unsigned variables are variables, but they can only be positive. And, as you expected, "timeBeforeUnban" is a 32-bit, unsigned variable.
Meaning ? Well, it can range from 0 to 4 294 967 295 (2^32). Huge number, isn't it ?
Now, you know how computers count. But, what happens if I apply a negative value to an unsigned variable ? The 3DS would crash, right ? Well, you're wrong. What it'll do is take the maximal value of a variable (here, 2^32), and just subtract 1 from it. And that's what the glitch does.
The glitch, for some weird reason, want to store the value "-1" in our "timeBeforeUnban" variable. But, as we said earlier, this variable is a 32-bit Integer, and only accepts positive values. And now, the glitch applies -1 to it. While it wouldn't mess up with already banned players,
it messes up with players that will be banned.
Why ? Because since the value of "timeBeforeUnban" equals 0 in the case of a non-banned player or an unbanned one, applying -1 to it means 2^32-1. So, 4 294 967 295 -1.
So, it equals 4 294 967 294. And since this value is a defined time in seconds, you just have to do the remaining math to notice that it equals
71582788,23... minutes. Or 1193046,47... hours. Or 49710,26... days.
Meaning that it equals 136,19 years. Those guys will be bored for the rest of their lives, it seems.
That's all ! Now, you know how the glitch works ! So, I guess you'll have to be really careful if you do not want to trigger the lifetime ban glitch !