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.
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.
@@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.
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. :|
such a shame that the 3D remake opts to have him flatten like he just got run over by a steamroller in a looney tunes cartoon, it's still funny in its own way but beard puddle is still the funniest
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
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.
@@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.
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.
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.
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.
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.
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 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.
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.
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
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.
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.
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.
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!
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.
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
@@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
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.
@ 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.
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.
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)
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
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.
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.)
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).
@@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.
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.
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 Your comment is old, but I realized this a while ago and it feels so obvious in hindsight. Free will is the ultimate illusion. We're just aware of the flow through time, and it's complicated enough it feels like free will.
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 :)
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.
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.
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).
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
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
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.
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.
'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)
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.
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).
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.
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
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.
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.)
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?
@@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.
@@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.
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
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 ( ;) )...
It's been a few years since UA-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.
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.
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?
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!
At around 9:53 you probably meant a negative overflow, just a negative one. Underflow specifically applies to the inherent imprecise nature of floating point numbers, not to integers, like you would deal with when storing a discrete number of things such as items in an inventory. Overflow on the other hand specifically refers to the storage medium being unable to correctly store a number when it exceeds the minimum or maximum value of its container. In this case it seems to be a negative overflow of an unsigned 16-bit integer, hence why it goes up to 65,000+ of that item.
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
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 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.
@@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
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".
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.)
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
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
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.
I'm pretty positive the overworlds themselves can suffer from the same glitches, AND that they can wreak havoc with FF4's flags. I had a game once where I went through the Agart hole one too many times and ended up retriggering the "enter the Underworld and lose the Enterprise" cutscene... Except that I was just before the trip to the Moon to recruit FuSoYa, and the result was a softlock, because I didn't have an airship and I couldn't enter the Tower of Bab-Il due to the forcefield.
You forgot to mention that the reason these glitches exist is because on SNES memory was low, and compression was tricky. Hex coding things allows for the game to have way more it can do because it's able to have numbers that wouldn't be possible without a system to make those numbers allowed. This code the game uses has a lot of flaws because the numbers for the triggers and even the sprites on screen are compiled from the hex decimals. Even the title screen is several broken and then re-compiled images that together look like diarrhea unless the code picks out the pieces. Most graphics you see draw from one of a few pages of this diarrhea.
thanks for diving into this! 🎮
Thanks youtube
Thank YOU for watching!
An actual youtube comment, never thought I'd see one on a video under 100k views
Give us back our dislike button
Wtf
17:52 Fusoya: "Hey Zeromus, you smell like upt co"
Zeromus: "What's upt co?"
Fusoya: *explodes*
This is so dumb, it made me laugh.
In a good way.
I laughed way too hard at this
So sad how Tellah died from ligma.
@@HYDEinallcaps Who's Tellah?
Bwwwwooooowwm....
Ah yes, who doesn't remember the iconic most powerful spells in the FF universe: Meteor, YottaFlare, and upt Co
Who needs to fight an enemy that's already dead.
I really hope FF14 references this in some way.
What's up bruh?
Lol this is new to me.. only ever played SNES version.. can anyone explain what upt co is?
@@scottrauch1261 Undead Monsters:
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.
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.
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?
@@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.
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. :|
My cat's breath smells like cat food
"Puddle of Beard" is the best descriptor for Fusoya I've heard to date
It's got a Woolsey feel to it.
I always thought he looked like a fried egg when he was on the ground "SWOONED".
@@Tony_Cardoza YOU SWOONY BEARD!
half beard, half man, and another half beard just to be sure
such a shame that the 3D remake opts to have him flatten like he just got run over by a steamroller in a looney tunes cartoon, it's still funny in its own way but beard puddle is still the funniest
"Probably stuck or bacon" is the best warning text I've seen in my life.
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
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.
Not all that different from conventional programming, if anything, it seems to at least use a pretty good quality of bubblegum.
Programming in general is held together by bubblegum and prayers.
@@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.
@@evernewb2073 One of my favourites is the nuke-happy Ghandi from the Civilization series
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.
"The 64 thing is easily explained"
Oh, okay.
I'll wait for that, then.
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.
NEEEEEEEEEEEEEERRRRDDDDDDDD!
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.
What?
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.
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...
@@t20kdc>your saves
Yes. Like how the NA Viewtiful Joe 2 demo formatted your memory cards.
@@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.
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.
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
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.
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.
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.
@@robertramsey8871 2010 was an outstanding year for gaming. Truly, it was. We got RDR, Dead Rising 2, Fallout, New Vegas, and other masterpieces.
early 2010s was when a lot of war happened which obviously benefits everybody
@@robertramsey8871 this is the first time i've seen someone "back in my day" the 2010s, damn
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!
I wonder if it has any relation to Page 64🤔
My first ff 🤍
Where it is said about the lore. I watched through whole video but I did not got it.
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.
@@TheRealWalt it is in the pixel remaster sadly
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
Best part of Mario lore ever.
They are transformed fungiforms, not humans.
Or how the crescendo of 1812 Overture is cannon.
Wait...
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
@@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
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.
Seems legit, after all we all know Yuffie Warp is canon, she is a ninja after all.
If Tellah learned upt Co, he wouldn't have had to die.
i duno, looks like it killed fusoya :p
@@lenia272 Well it is the Self Destruct animation so... yeah.
I am 99.9999% sure that upt Co is what Tellah did.
@ 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.
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.
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)
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
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.
So, what they're saying is that we need to watch out for Dr. Robotnik's diabolical traps, right?
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.)
Missingno never outright deleted my save, but it has corrupted it beyond salvaging multiple times.
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).
@@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.
@@Toksyuryel no it didn’t lol. MissingNo. Is harmless. It just jumbles sprites and duplicates items
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.
Can't wait to see upt Co make its next appearance as a tool of the final boss of bravely default 3
The more I watch speedrun glitch explanation videos the more I realize nothing is ever truely random.
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).
Makes you wonder about the whole "human free will" thing, doesn't it?
@@Chad_Thundercock Your comment is old, but I realized this a while ago and it feels so obvious in hindsight. Free will is the ultimate illusion. We're just aware of the flow through time, and it's complicated enough it feels like free will.
The "canon" part was, sadly, a bit underwhelming. Cool glitch, nonetheless.
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 :)
Yea, thought that was pretty obvious
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.
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.
Gotta be guys going through rom dumps
speedrunners are very stubborn
The dwarf castle has room connections that form a loop, and returns can't really be used in a loop.
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).
loved the video. I'm no mathematician but 64 is pretty close to 0 imo should be canon
It’s like practically the same number
Only 64 units away!!!!
My guess is that the level counter was stored in 6 bits, which can go from values 0 to 63.
I love this game when normal, but I love it even more when broken.
Hey, brossentia! :p
When it's broken it scare me... Nes and snes glitches are so much scary for me 😅
Beware the bacon.
Always love these breakdowns.
I think upt Co is supposed to say "Corrupt", but it got scrambled and lost the two 'r's
"Upt co"
unintentional powerful termination casting option
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
@7:54 where did the asset for those gears come from, it’s driving me crazy I can’t remember them.
"A masterpiece of a game where the story goes from the middle ages to the space age in a matter of hours"
Chrono Trigger: 👁️👄👁️
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
As someone who’s actually watched runs of the no credits warp category, I can confirm they do exactly that lol
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.
Your comment makes no sense except for a very insular crowd of people, btw
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.
'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)
Rubicante? Once the powerful fiend of fire, Rubicant, now reduced to a spicy salsa...
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.
He sketched the invisible repo man in zozo
You're a gem Doctor Swellman. I hope people find you soon and your views grow exponentialy in the speedrunning documentary hierarchy!
It's amazing how people investigate how the games work to be able to manipulate them in this way!
And here I thought W. meteo was the most O.P. spell in FF2 all these years...
My eyes have been opened!
12:40
I like how it's documented as bacon.
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!
Fusoya: Time to use my ultimate spell, upt co!
Zeromus: What's upt co?
Fusoya: Not much, how about you? 😏
Zeromus: 💀
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.
FOXXO DETECTED
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.
watching him explain the game's progression I feel like I'm watching the video in a different language
Now I get what that "64 stairs glitch" category is on Free Enterprise.
I've also heard it called Die Hard% in reference to the NES game
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).
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.
I still can't get over the fact that golbez goes from tall to smol like that.
I'm the one who made the bacon chart at 12:40. Takes me back to a simpler age and being surrounded by good folks. Thanks for making this video.
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
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.
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.)
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?
@@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.
@@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.
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
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 ( ;) )...
It's been a few years since UA-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.
This negative floors stuff sounds like something you’d hear in a creepy pasta and I’m here for it.
17:52 Has anyone been able to speculate on what "Upt Co" is short for, or how it got that name?
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!
Only if everybody knows what a stack pointer underflow is. Thats not something most random youtube viewers know.
17:45
Fusoya: I'm banishing you to the shadow realm!
Zeramus: NOO-
I cry every time with the twins :(. probably the first game i ever played that made me cry
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.
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?
Yeah it's weird hearing them not in the Hydin song version's haha...
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
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!
Man, you've grown almost to 6k scrubscribers, really glad to see you're making it m8.
1:19 "no64"
Aw but I like the Nintendo 64...how dare they exclude this wonderful console!
At around 9:53 you probably meant a negative overflow, just a negative one. Underflow specifically applies to the inherent imprecise nature of floating point numbers, not to integers, like you would deal with when storing a discrete number of things such as items in an inventory. Overflow on the other hand specifically refers to the storage medium being unable to correctly store a number when it exceeds the minimum or maximum value of its container. In this case it seems to be a negative overflow of an unsigned 16-bit integer, hence why it goes up to 65,000+ of that item.
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
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.
It's more probably that it uses 5 bits to store this data, so the max value is 63
@@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.
@@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
@@WylemRotMG oh I didn't read your first answer, the value really is set back to 0 manually in the code?
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)
Cid fighting Zemus along with Golbez is hilarious.
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".
I would love to see a Rydia Solo Speedrun one of these days.
So now that the glitch is canon...what happens to the lore of the rest of the final fantasy game timelines?
Man, the amount of work going into these things boggle my mind. I love the speedrun community xD
Another absolute smasher of a video Doc! Thanks for doing the deep dive into this wonderful bit of glitchery.
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.)
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
Going beyond the fourth wall
Someone is gonna hack the simulation by buying 13 stacks of whole wheat bread.
4:10 this glitch can get some weird dream sequence or train musing if I remember correctly..
Ahhhh Stack Overflow....the enemy of so many game programmers in the early years.
out of curiosity, what is even upt co ? is it a unused spell /mob spell ? or something not supposed to exist ?
It's corrupted data (meaning data not intended to be used in battle at all) being cast as a spell
I am a newcomer on your channel, I really like your videos, salutations from Belgium in Europe 😁
How do you get the GP for getting all that equipment you have to buy and sell?
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
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.
I can't imagine the time and dedication it takes to learn how to do all of these glitches.
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.
Obsessed with the Pyrite Town OST in the background. Iconic!
Final Fantasy Crystal Chronicles too? You have good taste in niche Gamecube games.
It's because the memory it's assigned to can only hold 64 numbers counting 0 so 0 to 63, and rolls over if it overflows.
I didn’t really understand most of this but I’m really high and your voice is really soothing 😍
I'm pretty positive the overworlds themselves can suffer from the same glitches, AND that they can wreak havoc with FF4's flags. I had a game once where I went through the Agart hole one too many times and ended up retriggering the "enter the Underworld and lose the Enterprise" cutscene... Except that I was just before the trip to the Moon to recruit FuSoYa, and the result was a softlock, because I didn't have an airship and I couldn't enter the Tower of Bab-Il due to the forcefield.
You forgot to mention that the reason these glitches exist is because on SNES memory was low, and compression was tricky. Hex coding things allows for the game to have way more it can do because it's able to have numbers that wouldn't be possible without a system to make those numbers allowed. This code the game uses has a lot of flaws because the numbers for the triggers and even the sprites on screen are compiled from the hex decimals. Even the title screen is several broken and then re-compiled images that together look like diarrhea unless the code picks out the pieces. Most graphics you see draw from one of a few pages of this diarrhea.
Hex is just a numeral system, you can represent data in binary or hex and it will use the same amount of storage space
@@AtKiba Yes and way they used it for SNES was amazing.
this feels like trying to teleport by taking shortcuts into the backrooms (the creepypasta/online story thing)
Its sad how little subs you have.
Good video.
Watching Rivers Mccown crush this game no64 is just great. His sub 3 RPG Limit Break run is just the best JRPGing around.
I dont get the option you give speedrunners at the end there. We do both. Constantly. That's why this is about.
Upt Co : Omae wa mou shindeiru
Zeromus : Nani!!!
The FFCC music...
Magnificent.
God the music giving me feels
i cant believe you can enter the back rooms in Final Fantasy 4