The FF4 Glitch That Squaresoft Made Canon

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 พ.ย. 2021
  • FF4 is broken, here's why.
    --------------------------------------------------------------------
    Support the channel on Patreon!
    / doctorswellman
    --------------------------------------------------------------------
    Check out my social media:
    Twitter: / drswellman
    Twitch: / doctorswellman​
    --------------------------------------------------------------------
    FF4 Speedrun Discord:
    / discord
    Aexoden's FF4 Site Resources: ff4kb.aexoden.com/
    --------------------------------------------------------------------
    Music (In order):
    FF4 - Red Wings
    FF4 - Land of Dwarves
    Grandia - Domu Ruins
    Karl Casey - The Saga - • Retro Synthwave - The ...
    FF4 - Baron Kingdom
    Pokemon Colosseum - Pyrite Town
    FF4 - Overworld Theme
    Amethyst Shade - Transient - amethystshade.bandcamp.com/
    FFCC - Twilight in Dreamland
    FF4 - Troian Beauty
    FFCC - Leaving the Body Freely
    FF4 - Within the Giant
    --------------------------------------------------------------------
    Runners/TAS'ers:
    The_Roth - / the_roth
    Riversmccown - / riversmccown
    Brossentia - / brossentia
    Pirohiko - / pirohiko
    Fcoughlin - / fcoughlin
  • เกม

ความคิดเห็น • 518

  • @YouTube
    @YouTube 2 ปีที่แล้ว +364

    thanks for diving into this! 🎮

    • @zensavage5119
      @zensavage5119 2 ปีที่แล้ว +39

      Thanks youtube

    • @DoctorSwellman
      @DoctorSwellman  2 ปีที่แล้ว +101

      Thank YOU for watching!

    • @johndiss8275
      @johndiss8275 2 ปีที่แล้ว +88

      An actual youtube comment, never thought I'd see one on a video under 100k views

    • @AlucardTheRedeemed
      @AlucardTheRedeemed 2 ปีที่แล้ว +137

      Give us back our dislike button

    • @Buderus69
      @Buderus69 2 ปีที่แล้ว +12

      Wtf

  • @sporedoutofmymind
    @sporedoutofmymind 2 ปีที่แล้ว +645

    17:52 Fusoya: "Hey Zeromus, you smell like upt co"
    Zeromus: "What's upt co?"
    Fusoya: *explodes*

    • @IDESTROYER236
      @IDESTROYER236 2 ปีที่แล้ว +42

      This is so dumb, it made me laugh.
      In a good way.

    • @Mega_Mikey
      @Mega_Mikey 2 ปีที่แล้ว +11

      I laughed way too hard at this

    • @hyde5213
      @hyde5213 2 ปีที่แล้ว +38

      So sad how Tellah died from ligma.

    • @Bubben246
      @Bubben246 2 ปีที่แล้ว +24

      @@hyde5213 Who's Tellah?

    • @YourIdeologyIsDelusional
      @YourIdeologyIsDelusional 2 ปีที่แล้ว +5

      Bwwwwooooowwm....

  • @haraberu
    @haraberu 2 ปีที่แล้ว +514

    Ah yes, who doesn't remember the iconic most powerful spells in the FF universe: Meteor, YottaFlare, and upt Co

    • @scottrauch1261
      @scottrauch1261 2 ปีที่แล้ว +48

      Who needs to fight an enemy that's already dead.

    • @1337penguinman
      @1337penguinman 2 ปีที่แล้ว +35

      I really hope FF14 references this in some way.

    • @CobaltContrast
      @CobaltContrast 2 ปีที่แล้ว +9

      What's up bruh?

    • @williamlennon1916
      @williamlennon1916 2 ปีที่แล้ว +5

      Lol this is new to me.. only ever played SNES version.. can anyone explain what upt co is?

    • @saltyralts
      @saltyralts 2 ปีที่แล้ว +3

      @@scottrauch1261 Undead Monsters:

  • @otterbeans
    @otterbeans 2 ปีที่แล้ว +121

    "Puddle of Beard" is the best descriptor for Fusoya I've heard to date

    • @BenjaminGlatt
      @BenjaminGlatt 2 ปีที่แล้ว +13

      It's got a Woolsey feel to it.

    • @Tony_Cardoza
      @Tony_Cardoza 2 ปีที่แล้ว +6

      I always thought he looked like a fried egg when he was on the ground "SWOONED".

    • @Quetzen
      @Quetzen 2 ปีที่แล้ว +5

      @@Tony_Cardoza YOU SWOONY BEARD!

  • @henke37
    @henke37 2 ปีที่แล้ว +369

    We programmers have a name for this design: a stack. Enter rooms push to the stack and return rooms pop from it. This sounds like a combination of a stack overflow and a stack underflow.

    • @CaseyAnthonyVEVO
      @CaseyAnthonyVEVO 2 ปีที่แล้ว +14

      That's what I thought too. Perhaps an unsigned integer could have also wrapped to signed through a casting mistake, given the presence of negative numbers. Or, as I've actually seen it happen, the other way around.

    • @ShawnPattonC
      @ShawnPattonC 2 ปีที่แล้ว +10

      Poorly implemented stack that's closer to a resizable array, and then you desync the index and size to nudge the pointer out of bounds?

    • @BradenBest
      @BradenBest 2 ปีที่แล้ว +14

      @@CaseyAnthonyVEVO You're talking C terminology, but assembly language has no concept of a type system (and thus no concept of what a "negative number" is), and I doubt 5A22 ASM is any exception. Plus, if the number is being used for a stack, then it's a pointer, or an offset to be added to a pointer, and applying two's complement to a memory address or offset is all kinds of wrong.

    • @Quetzen
      @Quetzen 2 ปีที่แล้ว +4

      My first reaction to hearing it was a set of priority numbers, I thought it was specifically put in there to make the mechanics behind the Exit spell, which sent you to the last room you were sent. Guess it was a more in-depth technical thing instead. :|

    • @tyruslawhorn
      @tyruslawhorn 2 ปีที่แล้ว +16

      My cat's breath smells like cat food

  • @ThatRagamuffin
    @ThatRagamuffin 2 ปีที่แล้ว +98

    "Probably stuck or bacon" is the best warning text I've seen in my life.

  • @Magus12000BC
    @Magus12000BC 2 ปีที่แล้ว +38

    If Tellah learned upt Co, he wouldn't have had to die.

    • @lenia272
      @lenia272 2 ปีที่แล้ว +9

      i duno, looks like it killed fusoya :p

    • @ladyabaxa
      @ladyabaxa 2 ปีที่แล้ว +7

      @@lenia272 Well it is the Self Destruct animation so... yeah.

    • @LainK1978
      @LainK1978 2 ปีที่แล้ว

      I am 99.9999% sure that upt Co is what Tellah did.

  • @raziyatheseeker
    @raziyatheseeker 2 ปีที่แล้ว +296

    With both the 64 Rooms glitch in FF4 and Missingno glitch in Pokemon, I've come to two conclusions:
    1) Telling players not to use the glitch will only drive their curiosity, and
    2) The code of classic JRPGs is so complex, that it seems to be held together with bubblegum and prayers

    • @jimmyfirecracker4548
      @jimmyfirecracker4548 2 ปีที่แล้ว +62

      If I had a quarter for every time I'd run into a classic jrpg that would eventually spit up a Glitch City event under extensive sequence breaking, I'd have two quarters. Which isn't a lot; but it _is_ strange that it's happened twice.

    • @ogrogordo6084
      @ogrogordo6084 2 ปีที่แล้ว +40

      Not all that different from conventional programming, if anything, it seems to at least use a pretty good quality of bubblegum.

    • @DarkLink1996.
      @DarkLink1996. 2 ปีที่แล้ว +51

      Programming in general is held together by bubblegum and prayers.

    • @evernewb2073
      @evernewb2073 2 ปีที่แล้ว +12

      @@DarkLink1996. which is a bit of an issue since the only way to make a program work smoothly and robustly is to learn to speak it's language *_Very_* clearly with perfect vocabulary and sentence structure, from there all you've gotta do is figure out what you want to tell it to do!
      seriously though, that last step has resulted in some insane stuff coming out of the videogame industry, mostly to do with areas of math that had been weirdly overlooked by the academic community and/or vastly more efficient/versatile/specialized ways to handle information.

    • @liamdell6319
      @liamdell6319 2 ปีที่แล้ว +16

      @@evernewb2073 One of my favourites is the nuke-happy Ghandi from the Civilization series

  • @CaseyAnthonyVEVO
    @CaseyAnthonyVEVO 2 ปีที่แล้ว +216

    I don't know what's more impressive, the fact that all this work went into the FFIV code, the fact that Square knew about this glitch, or that someone actually mastered it to the point of planning a whole speedrun around it.

    • @TheRealWalt
      @TheRealWalt 2 ปีที่แล้ว +10

      Lots of code goes into games, Square knew of their peninsula of power, and much more intricate tricks have been found in other games. Still, it is a great feat to not only find such game-breaking glitches, but also use it in such a way that would majorly benefit speedrunners.

    • @robertramsey8871
      @robertramsey8871 2 ปีที่แล้ว +10

      Notice most of the work was done in 2012. I think the early 2010s was peak civilization, and once smartphones became bigger, better and more distracting the world went downhill.

    • @TheRealWalt
      @TheRealWalt 2 ปีที่แล้ว +2

      @@robertramsey8871 2010 was an outstanding year for gaming. Truly, it was. We got RDR, Dead Rising 2, Fallout, New Vegas, and other masterpieces.

    • @isaiahsimmons5776
      @isaiahsimmons5776 2 ปีที่แล้ว +3

      early 2010s was when a lot of war happened which obviously benefits everybody

    • @fiona9891
      @fiona9891 2 ปีที่แล้ว +7

      @@robertramsey8871 this is the first time i've seen someone "back in my day" the 2010s, damn

  • @BradenBest
    @BradenBest 2 ปีที่แล้ว +189

    The 64 thing is easily explained: to save space, they combined multiple values into one byte, so they decided to store the 6-bit room ID with either a 2-bit number or two boolean flags, in the same byte. So when the game cares about the value of that number, they have to ignore those two other bits. This can be done with a bitwise AND operation with the number 0x3F (0011-1111, or 63).
    It's at this point that I should mention that in a 6-bit number, -1 and 63 are the same value, so it's a meaningless distinction to make. Negative numbers only matter when displaying values to the user. You have a number 0xF7 but the user wants it displayed as a negative number, so you take the value, 11110111, flip all the bits, 00001000, add 1, 00001001, and then throw a "-" in front of it when displaying it: "-9". Otherwise it's just "247", the machine doesn't care. When you subtract 9 from 10, it's the same as adding 247 mod 256.
    The more likely cause of the bug is that when 63 overflows, since we're still working with a byte here, it overflows into one of those unrelated bits (00111111 -> 01000000). If the game were to, say, flip the second flag again before the room ID decrements, then this would happen: 01000000 -> (flip) -> 00000000 -> (dec) -> 11111111. Either way, it's bleeding into these other bits, and there's no real way for the game to detect that short of manually checking the other two bits before and after. These bits having their values modified outside of the context it was supposed to happen is the most likely cause of the bug.

    • @Mythraen
      @Mythraen 2 ปีที่แล้ว +24

      "The 64 thing is easily explained"
      Oh, okay.
      I'll wait for that, then.

    • @ImnotgoingSideways
      @ImnotgoingSideways 2 ปีที่แล้ว +12

      Long story, short: They tried to save memory by using a very specific and relatively small space to store this number. Once the small space is used up, the number 'flips over' and breaks things.
      Personally, every time I see a power of 2 (in this case: 64), I'm sure someone was attempting to be too clever for their own good. Well... at least since we got more than 640KB of RAM.

    • @AshBloodfire
      @AshBloodfire 2 ปีที่แล้ว +4

      NEEEEEEEEEEEEEERRRRDDDDDDDD!

    • @HawooAwoo
      @HawooAwoo 2 ปีที่แล้ว +4

      For those who don't understand what is going on with the 0 and 1s let me reframe it. For this example, I'll be using base 10. You don't need to know what this "base 10" thing is just as long as you understand this is a "close enough" approximation. In this example 63 will become 999999. And I might been off on some of this so feel free to correct me if I am.
      Now when running a game everything that is happening and stored in represented in numbers. Generally speaking, these values are stored in 4 digit sections. Since we have 4 digits to work with it can store a number of 0-9999. In this case a number of 42 would look like this: 0042. Now to store a number larger than 9999 we will need to grab a second section. So 654321 would become 00654321.
      Now imagine you’re in the early days of video gaming and you have only a very small amount of room to store a whole lot of stuff. You want to store a value (lets call this value A) that is going to have a number larger than 9999 but don’t want to use up two whole sections. Well you decide that there is totally never going to be a chance that your value is going to be larger than 999999 so you’re always going to have two leading 0s (00999999). Why not put a value in there that only needs two digits to represent it (let’s call this value B)?
      So when you’re wanting to check value B you look at the two leading digits of our 8 digit number (so 87654321 is read as 87###### [the # to represent digits we are ignoring) and for value A you look at the last 6 (so so 87654321 is read as ##654321). But since we’re storing two values in only one number how do we change one without changing the other? Easy, when you want to change value B you can add and subtract from it with values like +23000000 (22654321 + 23000000 = 45654321) or -1000000 (22654321 - 1000000 = 21654321). And for value B you just add and subtract like normal.
      But what happens if our assumption that our Value B could never be larger than 999999 is wrong? What happens if we add +1 to 00999999? 01000000. Value A flips back to 0 (##000000) but also value B has changed from 0 to 1 (01######). And oh boy, that’s not how that is supposed to work.
      Now to wrap this all back to the video, due to how computers store numbers (look up base 2/binary if you are curious) 4 digits can only store a number of 0-15. 6 digits, however, can represent a number of 0-63. The Hierarchy Counter is value A in my example and Value B is whatever poor value is being changed when the Hierarchy Counter goes from 63 to 0.

    • @retropwn7596
      @retropwn7596 2 ปีที่แล้ว +2

      What?

  • @bigbigestwiner92
    @bigbigestwiner92 2 ปีที่แล้ว +44

    When u said “multiple runners like…myself” I had to get back and rewatch to be sure it wasn’t yourself you were mentioning xD it broke my brain for a sec

  • @metalsonic8888
    @metalsonic8888 2 ปีที่แล้ว +478

    Oh it's canon the same way Robotnik's Diabolical Speed Traps are canon, or how the bricks in Mario are actually transformed humans. Got it

    • @scottrauch1261
      @scottrauch1261 2 ปีที่แล้ว +39

      Best part of Mario lore ever.

    • @radaro.9682
      @radaro.9682 2 ปีที่แล้ว +84

      They are transformed fungiforms, not humans.

    • @BradenBest
      @BradenBest 2 ปีที่แล้ว +70

      Or how the crescendo of 1812 Overture is cannon.
      Wait...

    • @littlevivigaming4822
      @littlevivigaming4822 2 ปีที่แล้ว +36

      Its hard to tell if youre being sarcastic. That bit about the bricks in mario (toads though, not humans iirc) is in the handbook for the original release of super mario bros

    • @metalsonic8888
      @metalsonic8888 2 ปีที่แล้ว +67

      @@littlevivigaming4822 Same with Robotnik's Speed Traps that softlock you due to bugs. They're in the manual too.
      To explain the joke, they were all only mentioned in supplemental English materials. Their status as "canon" is dubious to say the least. But if you want to believe Mario is a murderer everytime he breaks a block or that Zeromus cast a weird math spell on stairs, you can

  • @eckitronix
    @eckitronix 2 ปีที่แล้ว +176

    It's part of the lore!?!?
    That's BEAUTIFUL!! I didn't expect to learn even more about my favorite JRPG of all time, but here I am, obtaining a wonderful look into the world I've wanted to traverse for years now. Thank you so much for this video, Doc!

    • @ToyokaX
      @ToyokaX 2 ปีที่แล้ว +4

      I wonder if it has any relation to Page 64🤔

    • @samuellipscomb8173
      @samuellipscomb8173 2 ปีที่แล้ว +1

      My first ff 🤍

    • @konstantinkunz2256
      @konstantinkunz2256 2 ปีที่แล้ว +3

      Where it is said about the lore. I watched through whole video but I did not got it.

    • @TheRealWalt
      @TheRealWalt 2 ปีที่แล้ว +7

      Funny thing is that it isn't the first time Square pointed out a glitch. In FF1, there's this little 1x2 piece of land where the above map zone, with stronger enemies, clips into the bottom zone. Square realized this and, instead of fixing it, just decided to make it canon. It's called the Peninsula of Power because you can grind here for easy EXP, which is basically needed for this game.
      In fact, I think it was never patched out of remakes. That is if memory serves me right.

    • @creppersaurusrex2300
      @creppersaurusrex2300 2 ปีที่แล้ว +3

      @@TheRealWalt it is in the pixel remaster sadly

  • @roax206
    @roax206 2 ปีที่แล้ว +64

    developer: avoid setting floor counter to over 63 or crashes and/or game corruption may occur.
    speed-running video: the developers used this to hide the game skip.
    also speed-running video: If you fail the skip you may crash or corrupt your game.
    given this glitch seems to be overflowing memory pointers, and reading inventory data as game worlds, I'm surprised there wasn't more damage done.

    • @t20kdc
      @t20kdc 9 หลายเดือนก่อน

      there's not really a way you can have "more damage done"; it's not like these systems have anything that can be written into (apart from, you know, your saves), and a lot of modern programming "style" that would make this a more catastrophic failure didn't exist back then...

    • @KopperNeoman
      @KopperNeoman 4 หลายเดือนก่อน +1

      ​@@t20kdc>your saves
      Yes. Like how the NA Viewtiful Joe 2 demo formatted your memory cards.

    • @t20kdc
      @t20kdc 4 หลายเดือนก่อน

      @@KopperNeoman Similar idea, although the PS2's main difference is having memory cards, and some internal storage (RTC, system settings). The Super NES had no internal storage or memory cards, so any lost data would be limited to the cartridge.

  • @ReMeDy_TV
    @ReMeDy_TV 2 ปีที่แล้ว +34

    @ 1:52 Ahh yes, making Cecil a paladin. I remember like it was yesterday. I thought I had gone Super Saiyan. Instead, my character ends up playing and looking worse.

    • @blindedjourneyman
      @blindedjourneyman 2 ปีที่แล้ว +13

      I get what they were going for, black KNIGHT= recklessly agressive meanwhile paladin means caring for self and allies. But the white mage lite with a sword did feel way too nerfed.

    • @shytendeakatamanoir9740
      @shytendeakatamanoir9740 2 ปีที่แล้ว +12

      Only for a limited time. He becomes really strong later (the Avenger makes him back to his old days of ruthlessly killing everything in his path).
      But I thinking Ceodore does the White Mage/Fighter hybrid better (or Holy Kain)

    • @Thatonedude917
      @Thatonedude917 2 ปีที่แล้ว +6

      I thought it was cool as a kid, mostly because Cecil just had fight and item in the English version on SNES so gaining white magic was cool to me
      I probably would've been peeved to lose darkness if he had it in our version

    • @TheRogueX
      @TheRogueX 2 ปีที่แล้ว +6

      Just gotta level him up while still on the mountain. He levels FAST. Gear him up and he hits hard again. In the US version Dark Knight was sorta useless compared to Paladin anyway.

    • @implord4197
      @implord4197 2 ปีที่แล้ว

      Just cast Berserk on him, and he's fine. All you're gonna do with him is attack anyways.

  • @roymerkel8008
    @roymerkel8008 2 ปีที่แล้ว +39

    Yeah the "will erase saves" was a common trope in explainations of big for glitches in the 90s (Missing no. in Pokemon also had this warning from the company), this was probably due to two things: 1. company big wigs trying to scare you into not doing super broken things. 2. non-technical people trying, and failing to understand, and explain what arbitrary code execution is/does, so they just assume that "anything can happen" (including game deletion, apparently).
    In some cases pokemon item 8F, it IS possible to erase your saves, but the vast majoriy of the time, the "erases your game" thing is not possible (yes, even for Missing No.)

    • @Toksyuryel
      @Toksyuryel 2 ปีที่แล้ว +5

      Missingno never outright deleted my save, but it has corrupted it beyond salvaging multiple times.

    • @alexstewart9592
      @alexstewart9592 2 ปีที่แล้ว +7

      The concern about gen 1 pokemon was warranted. While not technically deletion, in gen 1 there are numerous glitch Pokemon and glitch moves that can immediatly corrupt your save file so badly the game refuses to load it when they appear or are used, and this is really bad because gen 1 has no backup save and most of the glitch moves/pokemon that can do this don't have a way to fix your game so you can save a valid file once they corrupt your save data. (If you are wondering how glitch Pokemon corrupt save data, the sprite for most of them them is incorrectly defined, and trying to display it makes the function that displays the sprite overwrite data stored after the memory space used for the sprites - the next thing along is the Hall of Fame, which is why Missingno corrupts part of that when it appears, and other, more harmful glitch Pokemon make this go deep enough that a more important part of your save file is overwritten, making the file unreadable for the game).

    • @roymerkel8008
      @roymerkel8008 2 ปีที่แล้ว +5

      @@alexstewart9592 Best example is 8F in Red/Blue and it's equivelent in Yellow, which using it without a VERY specific setup WILL result in save data deletion.

    • @mingledingle1556
      @mingledingle1556 2 ปีที่แล้ว

      @@Toksyuryel no it didn’t lol. MissingNo. Is harmless. It just jumbles sprites and duplicates items

    • @SolarMegaMan
      @SolarMegaMan ปีที่แล้ว +1

      To be fair, while Missingno itself cannot cause the game to fall apart, it was never meant to be seen. This made Game Freak consider one very important thing:
      "We didn't test what this thing can do, or what other unintended Pokémon can do".
      They find that the Hall of Fame data got scrambled beyond repair, and even if they know why that happened, they know that some other mons work in different ways. They have no time to check everything, but they know that there's no noteworthy prevention on the save function, so some other mons (like the ones with Super Glitch moves, for example) can absolutely break the game. Giving that kind of detailed explanation usually makes people go "it's okay, I just need to avoid the bad mons" and the problem with that comes from it being impossible to tell for sure how to do so due to lacking and even misleading information. People would simply try to exercise caution, and potentially trigger something no one was aware of at the time that made their save file so thoroughly corrupted that the game refused to read it.
      So, a simplified explanation, if a slightly incorrect one, saves them from any accountability.

  • @Kasaaz
    @Kasaaz 2 ปีที่แล้ว +69

    It makes sense when you think about the way they do towns, Overworld 0, Enter Town 1, Enter Store 2, Leave Store 1, etc. So it know where you are and lets them set up the ability to trigger things on exiting or entering an area like moving you around to follow someone etc. that comes up to you.

  • @charlessegale6493
    @charlessegale6493 2 ปีที่แล้ว +30

    So, what they're saying is that we need to watch out for Dr. Robotnik's diabolical traps, right?

  • @RagnarokiaNG
    @RagnarokiaNG 2 ปีที่แล้ว +35

    Seems legit, after all we all know Yuffie Warp is canon, she is a ninja after all.

  • @allthelonely4287
    @allthelonely4287 2 ปีที่แล้ว +62

    The more I watch speedrun glitch explanation videos the more I realize nothing is ever truely random.

    • @CantusTropus
      @CantusTropus 2 ปีที่แล้ว +13

      True randomness isn't really possible in a deterministic system like a computer, unless you use some random natural event to determine things, like having an atomic clock that measures the radioactive decay of an atom. It's much easier to do the seeding thing, where you take a variable (number of steps taken or something) and generate a series of numbers that are predictable in theory but which are beyond most people's ability to calculate, because that's random enough. After all, randomness is mostly just a word that describes the forces that we are ignorant of, the limitations of human knowledge. We call dice rolls random but in reality they are governed by Newtonian forces that we can't fully measure (effect of gravity at this point, smoothness of the surface you drop it on, air pressure and flow, the rotation of the Earth, etc).

    • @Chad_Thundercock
      @Chad_Thundercock 2 ปีที่แล้ว +4

      Makes you wonder about the whole "human free will" thing, doesn't it?

  • @Entroper
    @Entroper 2 ปีที่แล้ว +10

    The reason this works in the Dwarf Castle is because the stairways form a loop -- you can go around the castle and get back to where you started, without backtracking. Because of this, the stairways can't be marked as "return", otherwise they would send you back to the wrong place. All the stairs in the loop have to be "go" stairs.
    This also works in FF1 in Castle of Ordeals, where you can use teleporters to go back to where you came from. Step on enough teleporters, and you can overflow the stack, the section of memory that stores the history of which maps you've been to.

  • @LuigiBones
    @LuigiBones 2 ปีที่แล้ว +20

    Can't wait to see upt Co make its next appearance as a tool of the final boss of bravely default 3

  • @KanaevM
    @KanaevM 2 ปีที่แล้ว +85

    The "canon" part was, sadly, a bit underwhelming. Cool glitch, nonetheless.

  • @tehtmi1672
    @tehtmi1672 2 ปีที่แล้ว +15

    The dwarf castle has room connections that form a loop, and returns can't really be used in a loop.

    • @MurderWho
      @MurderWho 2 ปีที่แล้ว +3

      Yes, which is why they shouldn't have been rendered as go rooms. Not that FFIV has an alternative.
      You can also do the 64 door glitch at Baron castle, as the secret passage you use later in the game means that can you approach a few doors from either side, so they can't just be pairs of go-return doors.
      In general you can use this loop logic or two-entrances logic to ferret out go-go pairs of doors. (as opposed to matched go-return doors).

  • @devinsiegel7
    @devinsiegel7 2 ปีที่แล้ว +18

    HOW DO YOU ALL FIND THE TIME AND MENTAL FORTITUDE TO FIGURE THIS STUFF OUT!?
    But seriously, whole hearted respect to everyone that made this video possible. FFII came to the SNES when I was eleven years old and it changed my life. Glad to see people are still having fun with this masterpiece.

    • @RianQuenlin
      @RianQuenlin 2 ปีที่แล้ว +3

      Overflow and Underflow glitches are extremely common in games, it's just a matter of finding what numbers can be xflowed and seeing what happens when you do it.

    • @TheHerrMan
      @TheHerrMan 2 ปีที่แล้ว +1

      Gotta be guys going through rom dumps

    • @brony4869
      @brony4869 2 ปีที่แล้ว +1

      speedrunners are very stubborn

  • @LumanareM
    @LumanareM 2 ปีที่แล้ว +7

    Amazing video as always! I knew the 64 Door Glitch caused locks and the like, but didn't know it could be used as what amounts to a Wrong Warp!

  • @Brossentia
    @Brossentia 2 ปีที่แล้ว +29

    I love this game when normal, but I love it even more when broken.

    • @ScottJohnsto
      @ScottJohnsto 2 ปีที่แล้ว +1

      Hey, brossentia! :p

    • @painkeller20
      @painkeller20 2 ปีที่แล้ว +1

      When it's broken it scare me... Nes and snes glitches are so much scary for me 😅

  • @dr4gonblitz
    @dr4gonblitz 2 ปีที่แล้ว +38

    loved the video. I'm no mathematician but 64 is pretty close to 0 imo should be canon

    • @JeffPenaify
      @JeffPenaify 2 ปีที่แล้ว +3

      It’s like practically the same number

    • @Xenosaga
      @Xenosaga 2 ปีที่แล้ว +1

      Only 64 units away!!!!

    • @immortalnub
      @immortalnub 2 ปีที่แล้ว +5

      My guess is that the level counter was stored in 6 bits, which can go from values 0 to 63.

  • @filipeisabelinho3425
    @filipeisabelinho3425 2 ปีที่แล้ว +4

    63+1 = 0 because 0 is also a number basically they're storing something in 64 spaces, that includes 0, so it goes from 0 to 63, if you add one it wraps back to 0 :)

  • @InfernalRamblings
    @InfernalRamblings 2 ปีที่แล้ว +33

    Beware the bacon.
    Always love these breakdowns.

  • @melovespoon
    @melovespoon 2 ปีที่แล้ว +4

    "Upt co"
    unintentional powerful termination casting option

  • @Tomix4k
    @Tomix4k 2 ปีที่แล้ว +4

    You're a gem Doctor Swellman. I hope people find you soon and your views grow exponentialy in the speedrunning documentary hierarchy!

  • @GlitchyGamer64
    @GlitchyGamer64 2 ปีที่แล้ว +4

    I think my favorite part of this entire thing is the spell you use looks like it's just the word "Corrupt" in a looping text box with a spare blank, shifted over a few tiles. Probably with only 1 r too heha

  • @talongaudio939
    @talongaudio939 2 ปีที่แล้ว +5

    This sounds like how my brother triggered a Glitch on Final Fantasy III/VI. He had 256 of every item in the game, and didn't know what caused it.

    • @staceykimbell9324
      @staceykimbell9324 ปีที่แล้ว

      He sketched the invisible repo man in zozo

  • @ohsixthirty5514
    @ohsixthirty5514 2 ปีที่แล้ว +1

    Thank you for posting this! I’ve been searching for this glitch for YEARS because I knew I read about it as a kid. I thought it was from Nintendo Power though, I completely forgot about the Ogopogo Examiner!

  • @plant7371
    @plant7371 ปีที่แล้ว +8

    "A masterpiece of a game where the story goes from the middle ages to the space age in a matter of hours"
    Chrono Trigger: 👁️👄👁️

  • @LilyKazami
    @LilyKazami 2 ปีที่แล้ว +8

    IIRC from discussions of the vanilla speedrun in FE discord, CW is not only more boring but more RNG prone as well, because the extra time taken for the scenes in NoCW ends up landing you on a much safer window for bacon floor.

    • @Rhannmah
      @Rhannmah 2 ปีที่แล้ว +2

      Your comment makes no sense except for a very insular crowd of people, btw

  • @protagonist-kun3587
    @protagonist-kun3587 2 ปีที่แล้ว +8

    I perked up when you said, "But to explain that, we need to talk about..." but didn't end in "parralel universes."
    Still a great video. You're not pannen, but you're just as good. Keep up the good work.

  • @jarredcombs7603
    @jarredcombs7603 2 ปีที่แล้ว +1

    @7:54 where did the asset for those gears come from, it’s driving me crazy I can’t remember them.

  • @Kyoslilmonster
    @Kyoslilmonster 2 ปีที่แล้ว +5

    Another absolute smasher of a video Doc! Thanks for doing the deep dive into this wonderful bit of glitchery.

  • @badgoy1573
    @badgoy1573 2 ปีที่แล้ว +1

    Man, you've grown almost to 6k scrubscribers, really glad to see you're making it m8.

  • @DjCrimsonFox
    @DjCrimsonFox 2 ปีที่แล้ว +12

    Man I remember the days when uptco/64 stair runs were brand new, it’s interesting to see how much has come along since them to make the runs more stabilized as well as the routing changes. Always fun to see a breakdown like this.

  • @roymerkel8008
    @roymerkel8008 2 ปีที่แล้ว +7

    64 is probably the length of the array used to store the return points because some developer said "that's more then enough, there's no way you can ever accumulate that many go rooms" (and, were it not for data errors like Dwarven castle stairs, that would probably be true. )
    Ironically, this same glitch exists in NES FF1 as well (though I think it's also patched in remixes :( ). But that's a different game and a different category ( ;) )...

  • @YadonTheCat
    @YadonTheCat 2 ปีที่แล้ว +2

    Fusoya: Time to use my ultimate spell, upt co!
    Zeromus: What's upt co?
    Fusoya: Not much, how about you? 😏
    Zeromus: 💀

  • @ezg8448
    @ezg8448 2 ปีที่แล้ว +5

    And here I thought W. meteo was the most O.P. spell in FF2 all these years...
    My eyes have been opened!

  • @tdark987
    @tdark987 2 ปีที่แล้ว +5

    What I absolutely don’t understand here is how, if this counter wraps back to zero for 63+1 (meaning it must be an unsigned int), it wouldn’t just wrap back to 63 for 0-1.
    An unsigned integer can’t _have_ a negative value, and a signed int wouldn’t wrap to zero from its maximum positive value (it’d wrap to the max negative value instead; e.g. 127 would wrap to -128).

    • @cmyk8964
      @cmyk8964 2 ปีที่แล้ว +1

      A 6-bit unsigned register does underflow to 63. It’s just that, even in an unsigned register, it’s sometimes useful to call that number “-1”, because it’s what you get when you decrement once from 0.
      The weirdness is probably from Floor 63 not existing in memory.

  • @julaizaya7946
    @julaizaya7946 2 ปีที่แล้ว +2

    I am a newcomer on your channel, I really like your videos, salutations from Belgium in Europe 😁

  • @lhfirex
    @lhfirex 2 ปีที่แล้ว +5

    Now I get what that "64 stairs glitch" category is on Free Enterprise.

    • @sporedoutofmymind
      @sporedoutofmymind 2 ปีที่แล้ว

      I've also heard it called Die Hard% in reference to the NES game

  • @Gunbudder
    @Gunbudder 2 ปีที่แล้ว +2

    I cry every time with the twins :(. probably the first game i ever played that made me cry

  • @dreamhunter5011
    @dreamhunter5011 2 ปีที่แล้ว +3

    watching him explain the game's progression I feel like I'm watching the video in a different language

  • @azinyefantasy4445
    @azinyefantasy4445 2 ปีที่แล้ว +8

    So if yang and edge are the same character as cid and fusoya then who is golbez? Wouldnt you be able to swap out him and just meteo everything until the moon? That would save so much time.

    • @neoqwerty
      @neoqwerty 2 ปีที่แล้ว +5

      I think Golbez has his own slot, which is a holdover from an early build where he was a playable character. (There's remnants of it in the game, and there's also remnants of Kain having had a White Magic menu, too, once-- you can reactivate it via hacking, but it's empty. After Years' Holy Dragoon is probably what Kain would have had in his magic index, but no one can be sure if the Holy Dragoon class was planned, scrapped, and recycled for After Years or not.)

    • @DemiImp
      @DemiImp 2 ปีที่แล้ว

      I can't find any this, or maybe I'm just struggling to find the right search terms. Can you explain and/or point me to where I can read more about this?

    • @azinyefantasy4445
      @azinyefantasy4445 2 ปีที่แล้ว +2

      @@DemiImp for my post it was because if yang is in the party, edge appears in the cutscene when you get fusoya and cid appears in the final battle if fusoya doesnt leave so he acts as his character.
      For the other guy. You can find the rom data on pirate sites for the game and data mine it by reading the code. You go in the code and activate all true events or just flat out switch them out for the pc version.

    • @ladyabaxa
      @ladyabaxa 2 ปีที่แล้ว +4

      @@azinyefantasy4445 To expand on this, for anyone still confused, what's happening is that there isn't sufficient space allotted in RAM for the entire cast to have their stats stored at once. Instead some of them are assigned to slots that get shared with other characters. As an example let's have characters 1 and 2 share a slot. Character 1 joins and their data is loaded into RAM. It gets changed as the player does things. Once character 1's time in the party is up and character 2 is about to join the data for character 2 overwrites that of character 1's in RAM. If you never trigger that event script for character 2 to join up then that slot will remain character 1. Any script that calls the slot uses what is there at that time. Scripts that load specified sprites without checking slot data can operate in ways that become hilarious when sequence breaks occur.
      My understanding of Golbez is that he is his own slot because he needs to appear in the player side of the battle against Zemus but his class and abilities were only coded insofar as was needed for cutscenes to work properly. If he was ever intended to be a playable character is was dropped early on.
      The same thing was done with Kekfa in FF6. He's got a slot in the character roster dedicated to him so he can appear as needed in certain cutscenes but there is no indication of it being anything other than a workaround to make events work as desired. Same with several other NPCs although there is slot sharing/overwriting involved.

  • @devinsiegel7
    @devinsiegel7 4 หลายเดือนก่อน

    It's been a few years since TH-cam has cycled this video back into my interests. It's so fascinating, beautiful and almost insane. OP, thousands of people owe you their thanks for explaining this better than anyone else could. I could watch this every day.

  • @yeadontwearitout
    @yeadontwearitout 2 ปีที่แล้ว +3

    How do you get the GP for getting all that equipment you have to buy and sell?

    • @DoctorSwellman
      @DoctorSwellman  2 ปีที่แล้ว +7

      I believe I mention it during the Rivers’s segment. Runners overflow Kain’s Iron shield or the shadow shield to get a stack of 65535 and sell the stack in mist right after

  • @DenniselAzul
    @DenniselAzul 2 ปีที่แล้ว +6

    It's amazing how people investigate how the games work to be able to manipulate them in this way!

  • @themechadrago5
    @themechadrago5 2 ปีที่แล้ว +4

    Great video! Out of curiosity, why is it you refer to the Four Fiends by the wrong names? Is it to avoid confusion for the people who aren't familiar with the other releases?

    • @Ranixo286
      @Ranixo286 ปีที่แล้ว

      Yeah it's weird hearing them not in the Hydin song version's haha...

    • @velvetbutterfly
      @velvetbutterfly 11 หลายเดือนก่อน

      It's because they're referring to a specific version of the game, it wouldn't make sense to call them something the game itself does not

  • @PapaQuill
    @PapaQuill 2 ปีที่แล้ว +1

    Great content, glad I found this channel. Only one thing I would ask for. Please get a higher quality microphone.

  • @justinwhite2725
    @justinwhite2725 2 ปีที่แล้ว +6

    'goes from middle ages to space age in a matter of hours...'
    The first final fantasy had a plot centered around a time travel machine... There's a reason why the first boss and the last boss are literally the same person. (and why it's easy to make a prophecy when you are in a time loop)

  • @bagelpenguin6499
    @bagelpenguin6499 2 ปีที่แล้ว +3

    I still can't get over the fact that golbez goes from tall to smol like that.

  • @chrisroode
    @chrisroode 2 ปีที่แล้ว +18

    This video could have been significantly shortened by saying, “it’s a stack pointer underflow”
    Cool stuff! Good thing the SNES can’t get on your Wifi!

    • @davidmcguire6043
      @davidmcguire6043 2 ปีที่แล้ว +4

      Only if everybody knows what a stack pointer underflow is. Thats not something most random youtube viewers know.

  • @WilliamLDeRieuxIV
    @WilliamLDeRieuxIV 2 ปีที่แล้ว +1

    Yes this is correct! **63 + 1 = 0** (if you are only using 5 bits)
    2^5 - 1= 64 -1 = 63d = 11111b
    0 1 1 1 1 1 b
    + 0 0 0 0 0 1 b
    ----------------
    1 0 0 0 0 0 b = 2^5 = 64d (0 with carry-out of 1)
    If you used 8-bits (3 high, 5 low): AAA BBBBB
    AAA could be used as an index (with 8 possible values) and
    BBBBB would be 64 values associated with each index.
    This would give a total of 8 * 64 = 512 possibilities

  • @joeltucci1916
    @joeltucci1916 2 ปีที่แล้ว +2

    As a kid I managed to somehow accidentally trigger this glitch, of course back then I had no idea what happened and was just upset I couldn’t save.

  • @someoneusedtobeknown2645
    @someoneusedtobeknown2645 2 ปีที่แล้ว +3

    12:40
    I like how it's documented as bacon.

  • @RydiasRevenge
    @RydiasRevenge 2 ปีที่แล้ว +3

    I would love to see a Rydia Solo Speedrun one of these days.

  • @sbrazenor2
    @sbrazenor2 2 ปีที่แล้ว +3

    I can understand why this works, but I can't imagine putting this much work into figuring out how to do it. 🤔 I respect the efforts people put in, because it's a cool puzzle when you think about it.

  • @SuLokify
    @SuLokify 2 ปีที่แล้ว +2

    Kind of interesting that 63 is both one less than a power of 2, and in hex represents a number one less than a power of 10 (99)

  • @Lokipower
    @Lokipower 2 ปีที่แล้ว +2

    Man, the amount of work going into these things boggle my mind. I love the speedrun community xD

  • @Qwerty95ish
    @Qwerty95ish 2 ปีที่แล้ว +8

    I love FF4 so this was fascinating. However glitch speed running seems to be just entering g commands as fast and efficiently as possible.
    Minus the people who find these glitches it just seems like a weirdly designed speed typing course.

  • @Shepic01
    @Shepic01 2 ปีที่แล้ว +1

    This negative floors stuff sounds like something you’d hear in a creepy pasta and I’m here for it.

  • @DiegoG2004
    @DiegoG2004 ปีที่แล้ว +3

    12:40 I love how the calculator instead of "Crash" says Crispy, Crispy Bacon.
    I can imagine the runners going "please no bacon" when they reach that floor

    • @DoctorSwellman
      @DoctorSwellman  ปีที่แล้ว +1

      As someone who’s actually watched runs of the no credits warp category, I can confirm they do exactly that lol

  • @Samissa806
    @Samissa806 2 ปีที่แล้ว +2

    out of curiosity, what is even upt co ? is it a unused spell /mob spell ? or something not supposed to exist ?

    • @velvetbutterfly
      @velvetbutterfly 11 หลายเดือนก่อน

      It's corrupted data (meaning data not intended to be used in battle at all) being cast as a spell

  • @MiningwithPudding
    @MiningwithPudding 2 ปีที่แล้ว +1

    I think upt Co is supposed to say "Corrupt", but it got scrambled and lost the two 'r's

  • @Peannlui
    @Peannlui 2 ปีที่แล้ว +2

    Another question comes to mind: do Final Fantasy 5 and 6 have similar coding and allow world-jumping like this? (I'm going to look it up, but I felt I had to comment.)

    • @velvetbutterfly
      @velvetbutterfly 11 หลายเดือนก่อน +1

      5 is very close to 4 so I would assume it is coded similarly but resources are different so the way you can exploit it may differ.
      I can't speak for 6 though

  • @NTSTS0
    @NTSTS0 2 ปีที่แล้ว +1

    Great video. Really enjoyed the narration and explanations.
    Also I drank an energy drink fight me

  • @Noobnormality
    @Noobnormality 2 ปีที่แล้ว +1

    17:45
    Fusoya: I'm banishing you to the shadow realm!
    Zeramus: NOO-

  • @UmbreonMessiah
    @UmbreonMessiah 2 ปีที่แล้ว +2

    Ahhhh Stack Overflow....the enemy of so many game programmers in the early years.

  • @ThunderJimmy
    @ThunderJimmy 2 ปีที่แล้ว +5

    So now that the glitch is canon...what happens to the lore of the rest of the final fantasy game timelines?

  • @BecauseItIsMyHeart
    @BecauseItIsMyHeart 2 ปีที่แล้ว +1

    Great coverage as usual! Thank you

  • @nymmkirimoto6310
    @nymmkirimoto6310 2 ปีที่แล้ว +1

    Obsessed with the Pyrite Town OST in the background. Iconic!

    • @nymmkirimoto6310
      @nymmkirimoto6310 2 ปีที่แล้ว +1

      Final Fantasy Crystal Chronicles too? You have good taste in niche Gamecube games.

  • @PronatorTendon
    @PronatorTendon 2 ปีที่แล้ว +7

    63 is hexadecimal for 99 in decimal, so adding 1 makes it 100, and many of the variables max out at 99 and roll over to 0 when you add 1. Character stats share this feature

    • @WylemRotMG
      @WylemRotMG 2 ปีที่แล้ว +3

      As far as I can tell, in this case 64 is just an arbitrary "good enough" number (64 floors ought to be enough for anyone..). When the counter goes above 63, it's manually set back to 0. You can't cast Warp when the counter is 0, so in theory this is fine. But return doors ignore this check, and let the counter go negative.

    • @AtKiba
      @AtKiba 2 ปีที่แล้ว +2

      It's more probably that it uses 5 bits to store this data, so the max value is 63

    • @WylemRotMG
      @WylemRotMG 2 ปีที่แล้ว +1

      @@AtKiba It actually uses 16 bits, because that ends up being more convenient for accessing the map history array.
      The devs used a lot of neat bit tricks to save ROM space, but in RAM most things seem to be optimized for ease of access. There's a lottt of bytes that only get used as booleans.

    • @AtKiba
      @AtKiba 2 ปีที่แล้ว

      @@WylemRotMG that's why I sait it's stored in 5 bits, they can use memory as they please, they can even use just 1 bit for boolean flags. They wouldn't use 16 bits when the data they want to store fits into 5 bits

    • @AtKiba
      @AtKiba 2 ปีที่แล้ว

      @@WylemRotMG oh I didn't read your first answer, the value really is set back to 0 manually in the code?

  • @lucidhighway4403
    @lucidhighway4403 ปีที่แล้ว +1

    an ability that doesn't deal any damage, but instead immediatly kills you by just altering reality essentially, is.. edlritchly horrifying and i love it

  • @--_--_--_--_
    @--_--_--_--_ 2 ปีที่แล้ว +1

    Its sad how little subs you have.
    Good video.

  • @chadwi4648
    @chadwi4648 2 ปีที่แล้ว +1

    4:10 this glitch can get some weird dream sequence or train musing if I remember correctly..

  • @EdgeKisaragi
    @EdgeKisaragi 2 ปีที่แล้ว +2

    I didn’t really understand most of this but I’m really high and your voice is really soothing 😍

  • @MrSadflkja
    @MrSadflkja 2 ปีที่แล้ว +1

    Cid fighting Zemus along with Golbez is hilarious.

  • @danielroy2145
    @danielroy2145 3 หลายเดือนก่อน

    You broke that down and explained it very well, thank you for sharing this.

  • @GoblinLord
    @GoblinLord 2 ปีที่แล้ว +2

    this feels like trying to teleport by taking shortcuts into the backrooms (the creepypasta/online story thing)

  • @crackedmateria4991
    @crackedmateria4991 2 ปีที่แล้ว +1

    The FFCC music...
    Magnificent.

  • @Paultimate7
    @Paultimate7 2 ปีที่แล้ว +2

    I dont get the option you give speedrunners at the end there. We do both. Constantly. That's why this is about.

  • @DonYagamoth
    @DonYagamoth 2 ปีที่แล้ว +1

    Neat overview, thank you ^^

  • @JoshuaJayMusic
    @JoshuaJayMusic 2 ปีที่แล้ว +1

    Does recent pixel remaster have this?

    • @velvetbutterfly
      @velvetbutterfly 11 หลายเดือนก่อน

      He said only the SNES/SFC versions.
      Anything newer was made in all new engines on all new hardware so this glitch physically cannot exist

  • @princesssprinklesthecat4192
    @princesssprinklesthecat4192 2 ปีที่แล้ว +2

    God the music giving me feels

  • @clarafedde8674
    @clarafedde8674 2 ปีที่แล้ว +3

    I drank before I watch. Also that is fun to watch, thank you.

  • @ThePerfectKiosk
    @ThePerfectKiosk 2 ปีที่แล้ว +2

  • @jonathantunnell3993
    @jonathantunnell3993 2 ปีที่แล้ว +1

    Been a long time since I've heard that pokemon colosseum song

  • @ztdk
    @ztdk 2 ปีที่แล้ว

    04:40 This seems wrong, or maybe just worded wrong? The rooms themselves can't be go rooms or return rooms, the transitions between rooms are what are flagged as go and return. Some transitions are flagged wrong.
    You list a return room as the first indoor room of Baron castle, but that would mean you hierarchy decreases when you enter there from the outdoors? And the warp spell would take you to the world map directly. That isn't what happens.
    This makes the explanation of how the hierarchy counter is incremented and decremented confusing since when you say you "leave a go room" you mean "transition deeper into the building or cave".

  • @CobaltContrast
    @CobaltContrast 2 ปีที่แล้ว +3

    How the heck do they beat the boss without grinding up levels???

    • @GameGod77
      @GameGod77 2 ปีที่แล้ว +3

      He explained at the end that the "upt co" spell insta-kills the boss.

  • @Xport9
    @Xport9 2 ปีที่แล้ว +1

    How people that are able to figure this out, is beyond me. This must be some galaxy brain level of tinkering within the programing. Damn.

  • @RBMGamer
    @RBMGamer 2 ปีที่แล้ว +2

    shoutouts to staying hydrated

  • @elleryhorton8434
    @elleryhorton8434 2 ปีที่แล้ว +1

    Going beyond the fourth wall
    Someone is gonna hack the simulation by buying 13 stacks of whole wheat bread.

  • @fryingraijin
    @fryingraijin 5 หลายเดือนก่อน

    Nice touch of the Crystal Chronicle OST’s 😁