1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Yoshi - 3DS Pedia
Signing up for an account lets you communicate with other Nintendo gamers from around the world. Play games, ask questions, have fun and earn eShop credit along the way.

The 136 Years Ban Glitch - Explaination

Explaination of the bug. Prepare for some math.

  1. D4rkDragon
    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 !

Recent Comments

  1. AricAttack
    Awesome I've heard about the ban but didn't know it did it.
    So this definitely helped me thanks.
    1. D4rkDragon
      Blogger's Response
      You're welcome ! And thanks for the feedback !
  2. ShiningEyes
    Nice explanation! (Though, it sounds very techincal to me). Since that glitch was discovered, now I'm afraid of playing online.
    1. D4rkDragon
      Blogger's Response
      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.
  3. CrazyElf
    Nice job! Good thing this glitch was explained, or else i would've had second thoughts on buying the game or not...
    1. D4rkDragon
      Blogger's Response
      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 ?
  4. Megalegacy98
    Wow what a great explanation. BTW what programming language is that
    1. D4rkDragon
      Blogger's Response
      All, they all support variables. It's just the keyword that changes
  5. Magik
    1. D4rkDragon
      Blogger's Response
      You're welcome!
  6. PersonSP
    Great explanation.
    1. D4rkDragon
      Blogger's Response
      Thanks ! I hope it's not too confusing, though :D