Resource icon

The 136 Years Ban Glitch - Explaination

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 !
Author
D4rkDragon
Posted on
Rating
5.00 star(s) 6 ratings

More from D4rkDragon

Latest Comments

Awesome I've heard about the ban but didn't know it did it.
So this definitely helped me thanks.
D4rkDragon
D4rkDragon
You're welcome ! And thanks for the feedback !
Nice explanation! (Though, it sounds very techincal to me). Since that glitch was discovered, now I'm afraid of playing online.
D4rkDragon
D4rkDragon
You should be afraid. I've played a few times yesterday, and I didn't got banned. Just play as usual (no DC, cheating or bashing the same player), and you'll probably be fine.
Nice job! Good thing this glitch was explained, or else i would've had second thoughts on buying the game or not...
D4rkDragon
D4rkDragon
Thanks ! Still, I'm wondering what causes that glitch to appear... Was that the update's code itself, or was that a server-side glitch ?
Wow what a great explanation. BTW what programming language is that
D4rkDragon
D4rkDragon
All, they all support variables. It's just the keyword that changes
Thanks!
D4rkDragon
D4rkDragon
You're welcome!
Great explanation.
D4rkDragon
D4rkDragon
Thanks ! I hope it's not too confusing, though :D
Back
Top