Pac-Man Kill Screen Explained
Вставка
- Опубліковано 21 лис 2024
- You may have heard about Pac-Man's game-ending kill screen, but have you ever wondered what actually causes it? It's all explained right here.
LINKS
Twitter (updates): / retrogamemechex
Patreon (support): / rgmechex
Discord (discussion): discord.rgmeche...
PATRONS
Thank you everyone for your help! It means so much to me.
Markus Persson, Ange Albertini, Avi Drissman, Chris, Jay Logan, Martin Trozell, Scott Harper, Robert Hunt, Larry Koubiak, Master of Pants, Joshua Goyder, Rareș Gosman, Greg Miell, Manuel Tiedtke, Tianyu Ge, Owen Christensen, Stephen1704, 333Rich333, Daniel L, Juli Mallett, Glenn Sugden, Jordan Wiens, Chell Jones, David Mazarro, Steven, D Money, LiraNuna, Austin Hughes, Vaendryl, null, Hex Witch Circe, Brandon Pelfrey, Curtis Ware, Corey Ogburn, Scott Chamberlain, Nig Nogginton, Garret Kelly, Michael Gerow, Jake Hickman, Joel Kuhn, Dan Shedd, Robert Schultz, Tina Wuest, Xander Webb, ParoXoN, 4F Panda, Max Roncace, Some Sheila, Micah Elizabeth Scott, JockeTF, Chris Singleton, Dave Voyles, Stephan Packard, vulpine mocha latte, Corrodias, silsha fux, Aaron, Brian Henriquez, hyperforce, Alex Yancey, Alejandro Cadavid, Leon, Matthew, dan, Ryan, John Armstrong, Christopher Mayfield, Vangald, Hans Eriksson, Josh Wolfe, Zach Zimmerman, Luke Chang, Ben Salvidrim, Navarro Parker, Matthew Bettcher, Joseph Edwards, Andrew, Paolo Pisati, Vardman Turner, Wenting, Jeru Sanders, Q, Dan Balestrieri, Adam Fritzler, Robert Butler, Sean C, Pat Randell, Michael Furtak, Martin Harding, Douglas Confere, Daniel, Bruno Valadão Cunha, Arnt Richard Johansen, DrunkCat, Skylar Brown, cab404, Matt Coburn, Kevin Turner, briandef, David, Matt Godbolt, & thegirlg33k - Ігри
Wow. You're the first person to actually explain HOW it happens.
Everybody else just said "256 wraps around to 0", and that's it
I agree. The 255+1=0 thing alone doesn't explain the messed up stuff on the right side, but this video does.
It isn't so simple to understand that it relates to the level counter.
It's Y2K literally. Wraps to zero and everything goes haywire
@@cubah1 Except it happened
@@neilisbored2177 Y2K did happen. But every programmer and company saw it coming from miles away and braced themselves to handle it gracefully.
Coincidence or not, saying 256 at 2:56 is pretty amazing
Devon Hayden He does not, unfortunately.
It seems like he said hundred fifty six, but ehh he says 256 so you're right
@Ersanio That was a coincidence, like back in the day, we'd watch TV with the volume off and the stereo wide open and hear things that matched the TV screen. Sometimes it made more sense! Lol.:-)
@@icenesiswayons9962 you sound like a boomer
@@mackback319... you sound like a sooner
Interesting fact: Namco Classics for the Nintendo DS has an option in the settings to fix the 256 level bug, allowing the game to continue :)
An option?? You would expect them to just fix it without asking.
They did fix it without asking, but it is in the options menu of the game you can fix the level 256 glitch or leave it as is if you want to witness the glitch for yourself.
AtKiba Canal i don't remember when the last time you played pac man but surely you remember level 256 is no easy feat
If they do something of their own volition like that, then why would they?
actually they did but only skilled pac-man players can get to level 256 with the fix on.
For anyone left wondering why the tiles are drawn in such a weird order, I'll have a go at explaining. I think it's a really clever solution, but some might find it boring, so...
As Pac-Man is an 8-bit machine, it is only capable of counting up to 255, but the display resolution is 224×288. In order to get pixels beyond 255 for the height, some are taken from the sides and put at the top and bottom of the screen. In practice this means that the tile map in memory is 32×32 tiles, where each tile is 8×8 pixels, but the tile map is displayed as 28×36 on the screen. The maze is still 32×32 tiles, but columns 0 and 1, and 30 and 31 are not visible. This is the reason the characters disappear when the go through the tunnels.
The reason the main part of the screen is drawn top to bottom and right to left is that the whole screen is rotated 90 degrees to be in portrait aspect ratio. The cabinets just used standard 4:3 CRT screens turned on their sides.
That is actually really interesting!
You deserve a like, my friend.
Huh, and I thought the game writes the graphics from top to bottom and from right to left because it's japanese.
That actually makes sense!
Then, what is with the classics made in 2016? Bandi Namco created just "PAC-MAN" for the mobile version allowing a classic mode, through all the advancements for 38 years caused better and advanced stuff, having an advantage of removing a problem of a kill screen caused long before at 1980. So really, it can be hard to do in the mobile version, so right now, the kill screen is possible to fix.
Saying goodbye to the level 256 38 years ago.
Oh, the havoc a simple integer overflow can cause. It never stops being entertaining.
nin10doadict you might want to check out stryder7x for more glitches. He only does Paper Mario though, so you might not be interested.
and an integer underflow in that game can cause a softlock in every room with enemies
In other words, playing Pac-Man crashes Paper Mario.
Actually I've been subbed to stryder7x for quite a while now. :D
Link8304 - Gaming in Hyrule
Is this a meme?
The reason this bug exists at all is due to the programmer not thinking anyone would ever max out the machine and reaching the 256th level. And because of that, he never tested his 8-bit code for that contingency. At least now people can burn a fixed eprom for this problem if they so choose.
There's a fix for Ms. Pac-Man's (rather more involved) kill screen as well. Gotta be impressed when people find a way to shove a bugfix into the tiny bit of rom used by a 35 year old game.
In this case wouldn't it just be a reordering? At the start of the level, draw the fruits, then the maze. Then leave them (as I assume the maze is being done already for the dots' sake) until the next new level.
Probably somebody did realized this back then, but the team said "Nahh, they wont get past level 255" and so it wasn't worth fixing it
Asterra2 Is there a video explaining Ms Pac Man's?
It was originally designed for arcade cabinets right? They probably thought no one would ever stand there for ~3 hours doing it, not getting bored, and not loosing once...
3:50 That falling 1 is so sad. :(
don't worry, the carry flag will catch him
*R.I.P 1*
F
the love on the animations are so cute :O
This is so sad
Can we hit 2 likes
"now let's get into the more technical stuff"
But I haven't understood anything said so far.
Lol
Heh heh. Know what you mean. That said, just using my brain for a general understanding of the matter, it essentially has to to do with the limitations of the coding based on the data available to write coding that basically equates to “if x then y”. 255 being the maximum number, once you hit 256, those “if x then y” formulas start to make no sense.
Or another way to look at it, the algorithmic coding of the day allowed for 255 levels of fun gameplay, which was more than enough for 99.99999% of the arcade visiting public. Which was more than enough to compensate for the fuckery that starts when you roll over to Level 256 (aka Level 0).
I have.
DenkyMan then does that mean that you did not understand “seven”?
Frr
Fascinating. Extremely well done video!
are you gonna speedrun Pacman?!?
holy shit kosmic
I love how people think glitches as something that’s wrong with the game, but that far from the truth. The game continues to try and do its job even when one thing is out of place, making an almost always entertaining mess. Great video as always mate, look forward to the next one.
Yep this is a good example of computers doing *exactly* what they're told to do, even if it doesn't make any sense
1980s error handling: "what error?"
Yep, it's perfectly possible to add a special exception to prevent the level counter byte from ever being 255, but it's not worth wasting those extra bytes when your ROM space is limited.
VuurniacSquarewave well in the later Pac-Man machines, they introduced a bored which if someone did get to level 255+ an integer overflow would occur. Just like donkey kong, nibbler and countless other games.
If only computers nowadays handled errors and giltches like this instead of protecting memory and throwing an error message up then quitting.
There is an endless version of Pac-Man Called ‘Pac-Man 256’. It’s an app where you are in an endless Pac-Man with a scrolling screen being chased by glitches. I always wonder why the number 256.
It all makes sense now...
its basically crossy road
@@lisacamarillo8744 but PACMAN. 256 pacman. Even the teaser says it's inspired by the 256th level. Unless you knew that.
@@lisacamarillo8744 So basically Frogger
if pac man 256 level kill screen land move dot are lower
@@thisissaah_3536 *Pac-Man
though, imagine being the first guy to reach 256
"Hey, what happened to my game???"
It would be scary
I'd be to scared to play the level
Bill Bastable would've felt relieved.
@HitWalkHook I think that the first person to get there actually sent a picture of it to the devs.
That would be Billy Mitchel. First man ever to beat Pac-Man and get a perfect score
Dig-Dug has a kill screen which also happens at Level 256! The level layouts vary in Dig-Dug, however, so "Level 0" loads garbage level data, placing an enemy right on top of the player.
Same happens with mario vs donkey kong arcade lvl 22
There's also a kill screen in Galaga, but it's effects can vary depending on the difficulty setting (some machines will load a normal level, while in others the game will crash).
+Another Anime lover Unlike Dig-Dug or Pac-Man, however, Donkey Kong does not have a glitched screen at level 22. Rather, it has a glitched timer that doesn't even give you enough time to get past the 2nd girder.
It's another integer overflow. The timer is calculated by taking the level number times 10, plus 40. There is a check at the end of the code to prevent the timer from exceeding 80. If the level number is stored in B, and the timer is in A, then this would be the equivalent code in BASIC (I'm translating to BASIC for anyone reading this who isn't familiar with Z80 programming)
A=B : REM Set the Accumulator to the level number
A=A*2 : REM The Accumulator is now twice the level number
A=A*2 : REM ... and now it's four times the level number
A=A*2 : REM ... eight times the level number
A=A+B : REM ... nine times the level number
A=A+B : REM ... ten times the level number
A=A+40 : REM and now A=B*10+40 as intended
IF A>80 THEN A=80
Note that the *only* error checking is done *after* the math. The problem is that A is an 8-bit number, so it can only hold a value between 0 and 255. So what happens when you hit level 22? (22*10)+40=260, so A wraps around to (260-256)=4. Since 4 is less than 80, the error checking doesn't catch the problem, and you start level 22 with a timer of 400.
The unusual thing here is that the game checks the level to make sure that if you ever get past level 100, it forces it back down to level 99. So they *did* anticipate that players could make it to level 100, but somehow they overlooked the timer bug, and you can't get past level 22 without patching the ROM.
What was *supposed* to happen is that if you are on level 4 or higher, the timer will always start at 8000 (which is the reason for the IF A>80 THEN A=80 at the end). The patch is simple and fits in the existing space. You just add an error check before the math, and remove the IF statement at the end.
A=B
IF A>=4 THEN A=4
(everything else is the same, but remove the IF A>80 at the end)
@@SpearM3064 not sure if you're really smart, or just a huge geek, lol
FairPlay137 minecraft limits at 256 too
Can I just say, aside from being really interesting and well-articulated, your videos are *very* aesthetically pleasing. The way everything is laid out and animated is just on point. You need to be in web/app design or gaming or something lol
Probably one of the scariest, most influential computational bugs of all time. Today this kind of glitches are treated as "The system doesn't know what to do so it just throws in random shit and colors", but this is so painfully logical that I don't even know how to feel, it makes too much sense and I literally can't think what would've happened if it were any other way. Fascinating.
A great explanation of the Pac-Man Kill screen! I never knew what was going on, but now it makes a whole load of sense! Thanks for making another great video!
Okay, I have a theory I'd like you to try out if you can... These pellets return on a respawn, yes? Simple, can we hack in Infinite Lives and continue to eat those respawning pellets to reach the 244 pellet counter, and then see what happens?
I did this while recording the gameplay footage--you go back to level 1 (just a cherry), but the enemy difficulty still behaves as if you were on level 257 (fast ghosts and they don't turn blue when you eat a power pellet).
Thank you! That's kind of what I suspected would happen (since the only variable causing an issue here is the level icon) but it's wonderful to have it confirmed. I wonder if a ROM hack could be made that adjusted for this, or if one already exists...
Interesting, but why do the ghosts stay at faster speeds? I assume a second variable has to be responsible for that if it isn't the level number variable.
Chris Waegelein
What? The ghost speed variable is 16-bit???
One thing I would love if you did, was deconstruct the "Hidden World" in The Guardian Legend. Though, such a project would be freaking huge I suspect. It's a NES game that uses a map coordinate system, and if you use the password system to spawn yourself outside of the intended map, the game starts creating rooms using random data in the ROM and you get lots of glitchy messes (a lot of which will crash the game). It would be interesting to see what is going on in the game's RAM, and such.
But I suspect that would be a huge project to analyze all that data...
I'd love to see that.
Excellent video. Like that you put in the work to reverse engineer the exact output of level 256 instead of just leaving it at "register overflow"
Awesome technical breakdown of what happens. The "glitch" is actually very ordered, and your explanation makes a lot of sense. What software are you you using to create your animations within the video? Very nicely done!
Everything computers do is ordered. It's just that some happen to ruin the intended function.
(Technically, everything everything does is ordered, thanks to the laws of physics.)
It's still a glitch, an unintended consequence of an oversight is still unintended.
I think that by order the OP meant “in order”, not “giving an order”
I use After Effects for pretty much all of the animations.
Retro Game Mechanics Explained you sound familiar...
That animation running through the code and drawing the glitch is one of my favourite things to watch on this channel.
I've known the specifics of this glitch for years now, but never seen a video on the specifics. Really nice to see one, finally. Hoping to see some for games like Galaga and Dig Dug in the future. :)
Galaga and Dig Dug? You wouldn't happen to have read Don Hodges' old website posts about this stuff, would you?
Yep.
Finally someone that doesn't uses the excuse "There was not enough space left left for the other half"
This is so well made and explained, keep it up!
this was perfectly executed! flawless video!
Ironic, as it's a video about the game being imperfectly executed
Loved this!
**turns around**
@@smashfanx7560 r/madlads
@Spirit Creeper 40 Thanks!
0:07 Ah, the *256 Glitch.* I love how both Bandai Namco and Hipster Whale teamed up to make *"Pac-Man 256",* a game that's literally based on the 256 Glitch. It's incredible.....
if only Nintendo did the same...
Beautifully explained! Even in the 1980's I figured that it was something like this happening. I was just starting to learn computer programming and figured is was like a stack overflow, but that didn't make much since either because in a stack loss, there is data loss which usually means a fatal error then crash, but here it does a type of flip flop but using current running data to overlay old data the not used anymore as it was just needed once to load and draw the game screen values for initial game play. Great work!
This doesn't relate to anything important in the video, but "Dave Race" is a great name for a speedrunner.
I wonder what his fans are called?
i really appreciate the technical accuracy but also the smooth animation
That transition at 10:46 is GOD-TIER HOLY MOLY
I heard a large prize was offered for anyone who could complete level 256 the way it was but it was never claimed.
9:32
So much hard work OMG
Hopefully he used a script... Hopefully
I think I recall reading he uses scripts in After Effects to show technical things within the videos.
9:44 draws a pac-ler
0:40 That's what the fruits meant? I was always so confused! I was thinking maybe they were fruits that I gathered, but they clearly weren't!
I love how well you explained this. I’m very unfamiliar with how memory addresses and all that kind of stuff work, and you made it all easy to understand. Love this
"Now let's take a look at the more technical stuff."
Me: Ok, I wanna see if I can understand this part.
*big numbers and strange images*
Me: *I FAILED MATHS FOR A REASON*
Your channel is extremely well detailed and polished. Nobody else comes even close!
Acoha This is guy is fantastic! Have you ever heard of RetroAhoy? His videos are great too c:
They should have just treated the level number as zero based instead of one based and then integer overflow would just take you back to level one instead of level zero.
With adding 1:
actual 0 -> shown 1
actual 1 -> shown 2
...
actual 254 -> shown 255
actual 255 -> shown 0
Without adding 1:
actual 0
actual 1
...
actual 254
actual 255
actual 0 (back where we started)
...
They chose the former one, because they didn't think about overflow and they wanted to start with 1.
Impressive video, you definitely did your homework on the subject and presented the info perfectly.
A++
Nah, A+++
Man, old school game glitches are cool like that. I kinda wish more modern games would try to replicate systems like that prone to actual fun glitches if everything's not coded or managed correctly.
Actually, it's very easy to do this: just don't add a crash handler. Problem is, then you can have bad shit happen on modern PCs and stuff.
tbh I wouldn't like that very much, I always found kill screens startling, I don't like seeing games suddenly spazz out in weird and unexpected ways, it hurts my eyes and gives me the fright of my life
Elven Insanity The modern equivalent are engine bugs/flaws. Want a modern example? In Call of Duty 4:Modern Warfare, if your computer runs the game fast enough (Either 125, 250, or 333 frames per second), the game calculates physics wrong, letting you jump higher, reload, and move faster. Another is a more classic example. In Quake 1, running and jumping on slopes surfaces influence your momentum, meaning that high enough ramps you can run up and jump from will send you very high
a lot of source games like portal or half life have backwards jump speed glitches, similar to the BJLs in super Mario 64
Another framerate-related problem: If you hack Super Mario Sunshine to run at 120FPS, you can't enter level portals!
There's also the all-too-common state machine glitches and animation engine and physics errors in modern games.
And SM64's parallel universes
That first win was the most close death I've ever seen.
What a spectacular video! Full of engineering data, retro game data, nostalgia, and some of the best and most descriptive infographics I've ever seen on UA-cam! Absolutely to notch -- thanks for your efforts! 💯
I love your explanations. There's always that "aha" moment where it makes complete sense. Awesome!
And that, my friends, is why you use zero indexing.
And bounds checking
Dude, I love this explanation. I was really hoping for something more detailed than 'garbage data' or 'glitchy graphics' or something along those lines, and you really delivered.
"I got all the patterns down...up until the 9th key." -- Buckner & Garcia, Pac-Man Fever
My 9th-key pattern had me go through the PacMen to impress chicks.
13th key, Pac slows way down to "start level speed", while the ghosts are all faster than Pac (not just Blinky). Tough. I think the furthest I've ever made it is 15th key...apparently I'll never see the "kill screen".
I remember reading a website by Don Hodges years ago explaining many arcade kill screens in Pac Man and Donkey Kong, and how to patch them. Nice to see a video explain Pac Man's kill screen with visual aids easy to understand.
Saw this video, thought "oh I know what causes that."
Well I was wrong. Great video, as always! :)
Mezgrman
Aw, you should have told us what you thought. I'm interested.
Glad u like it, I did
Yeah that was exactly my thought. "It's because reaching level 256 rolls over the counter and screws things up, right?"
Yes, that is in fact what happens, but it doesn't tell anywhere close to the full story.
WHAT WHERE YOU THINKING A YEAR LATER!?!???
This is the nicest description I've seen about this bug. It might be useful to mention that the monitor is turned sideways, so that the score and fruits areas are actually drawn top-to-bottom, and also perhaps mention that having addresses increase by a power of two each row is easier than having them increase by some other amount. Using 32 bytes per "row" would have required making the game board four tiles shorter; using 64 would have used up more RAM. It was likely cheaper to have some "columns" count by one while others count by 32 than it would have been to make them all count by some number like 36.
Also, another thing people forget about this issue is that Namco's customers' were arcade owners, and from their perspective, the real bug wasn't that it was impossible to get past level 256, but rather that it was possible to play long enough to get there on a single quarter. If the game abruptly ended after level 30 with "YOU WIN--NEXT PLAYER PLEASE", that would have been better than letting people play another 220+ levels.
The way this is also animated, it makes it SO much more awesome!
What about Ms.Pac-Man and the upside-down maze?
Your videos are amazingly well produced and explained. They must take ages to edit. Fantastic work. Also btw there’s something about your voice that i find extremely soothing.
i thought the galaxians were lemon flavored ice cream sundaes
Me & my dad call them sundaes, and we thought the bell was a gold nugget lol
"There are pellets that respawn after you die" People with infinite lives cheat:
*interesting...*
If you do that, I wonder what happens when you reach level 257…
@@NoriMori1992 You just go back to Level 1, but the game is still at its maximum difficulty. (You don't even need to cheat to prove this - use the "rack advance" feature either in MAME or an actual arcade machine to see it.)
5:41 - "Now let's get into the more technical stuff" - Yes, because all that stuff before was so easy! :D
Wow, this explanation was incredible. Thanks for going into so much detail and graphically showing everything that was happening!
I'm never this early to your vids so I never get a chance to ask you anything.
What I wanted to ask, is actually a suggestion: take a small break between talking and showing something. If you do both at the same time, people can't focus on both things simultaneously.
A good example is at 6:09: you are showing the different valid memory positions for the fruit while explaning the consequences of accessing wrong memory addresses.
Like with a slideshow presentation, if people are focusing on the visuals, they won't pay attention to what you are saying.
Explain something, stop talking while showing a visual example of the explanation and then continue with the next explanation.
Anyway, thanks for another nice upload.
Thank you, I'll consider it for future videos!
0:50 that’s a peach? thought those were oranges.
This is kinda creepy. Imagine if this was real life and half of the world was just a glitchy mess.
This is why we die faster at larger age numbers, the world is trying to stop us from getting to age 256 and glitch out half the universe
R.I.P Japan, Created Nintendo And Was 256 Years Old
A perfect and complete description yet again. I’m glad to see you making videos again.
Excellent Video.
And thus, Namco and Hipster Whale made a game called Pac Man 256, and this game was inspired by 256th level kill screen. 👍
CHAKA24 I played it
Great video. I always know I can expect quality information and entertainment when I see RGME in my feed.
I was the 256th like on my screen. So happy lol
*0th
There's zero likes, you are too early
MarioFanGamer r/woosh
Suwin Khamchaiwong r/woosh x2
even better, this comment has 64 likes at the time of me viewing it
*At "We have to look at the tile map"*
*Ad appears mid-sentence*
Ah yes, we have to look at the ad of course!
Does the stage only render once? The pellets are obviously restored, but the walls never change, so...
Would it "fix" the glitch if drawing the new pellets on-screen only happened after the level counter has been drawn? Sure, the stage walls would become corrupted, but hey, it's better than nothing!
i still have no clue what you are explaining but i just cant stop watching, you are keeping my interest pretty well.
You know what's kinda funny? if they'd drawn the level AFTER the level counter, there wouldn't have been a problem: the status line would be corrupted and the level area would have junk on it, but then that junk would be overwritten with the map that's supposed to be there and everyone could go on their merry way going to level '1' next.
Wow, I just realized you're right. Wow. That's truly amazing right there---
Since Pac Man's levels are static, I never understood how this was possible until now. Thank you for the explanation.
I've wanted this forever. Can you do something similar with other kill screens?
Probably the best description of a video game glitch I have ever seen. Thanks!
This explanation is foolproof
I am the fool, they have the proof.
For now perhaps, but the world is constantly making better fools.
This is actually a lot easier to understand than I had expected.
Liar
@@imissjokesonpurpose no u
@@torin1006 uno reverse card
@@imissjokesonpurpose You've activated my trap card! Your reverse card got sent to the shadow realm.
@@torin1006 *ye well ur mom got sent to the shadow realm becuz of me*
8:18 For those wondering why there can be a Key offscreen, Pac Man has 16 extra pixels on the left and right sides of the screen each which goes past what can be shown on the sideways 4:3 screen, hence why you cannot see them. This is done so Pac-Man and the ghosts can move past the left and right screen bounds when going to the left/right exits or during intermissions without causing any animation compromises or issues on the other side of the screen if those compensations aren’t made.
This is all just what I came up with from my knowledge about how games like Pac-Man run so take my answer with a grain of salt.
awesome explanation as always!
Thankyou Game Grumps for bringing me here, and thank YOU, RGME for enlightening me and explaining so well. This is kinda rad.
Luv ya dots!
I find it interesting that the simple 8 bit stuff sucked up.WAY WAY more hours than way more advanced games that came later. At least for me...
These videos are immensely fascinating. Who would’ve guessed a simple game like Pac Man would have so much depth to it?
Wish I had $4000 or $4400.
'Course you do.
I wish I had $FFFF
@@RodBeauvex When you're so broke that you cause an interger overflow in your bank account!
Wouldn't you being poor cause an integer *under* flow?
@@RodBeauvex $6666 is what you meant? F=6
Thank you so much for these videos! I've been coding a retro-style video game for years now as a hobby, and understanding some of the mechanics behind these games helps a LOT with inspiration and development. Thanks again!
This was a cameo on crossy road(if you play as pac chicken or Pacman) and Pacman 256
Modding the Fallout games also work in a similar way, where every mod plugin is given a load order number in a hexadecimal format, thus the maximum amount of plugins you can have is 255, while the 256th is the base game plugin and has the ref number of 00 in the console.
"we have to take a look at th- *ad plays* "
If you're looking for interesting future glitches worth explaining, I would absolutely love to see an in depth dissection of either the Donkey Kong Country 2 Castle Crush glitch and/or the Sketch Glitch from final fantasy 6. Both of these glitches have such (seemingly) random effects and have very little documentation out there.
Thanks for making the amazing content you do - it's amazing to see such thorough and easy to grasp breakdowns of some of gaming most amazing glitches.
I would try this on the Atari 2600 hundred version, but I want to forget that version and E.T. as well.
thaddeus mcgrath
Ahhh pacman on the 2600 wasn't that bad! But yeah, E.T. was pretty shocking!
Pacman on the 2600 would've been better if Atari had let him use an 8k cartridge; the programmer himself said so. There were things he wanted to do that he just couldn't fit into 4k.
(The 2600 was limited to a maximum of 8k without bank-switching; beyond 8k required additional circuitry in the cartridge, up to a maximum of 32k. But Atari insisted that he had to do Pacman in just 4k.)
"2600 hundred"
@@arfansthename Looks cooler with it at the end
@@thaddeusmcgrath But it's just redundant.
Huh, I wonder why i never thought of wondering why _that_ happens. Wery well made!
2:37 Wouldn't that last key be used for the fruit in the middle of the level?
Ahh yes, key fruits
Never mind. I found out later that the fruit in the middle of the level is the same as the last fruit of the counter.
I just discovered that in the original Japanese Puckman, the last few glitch tiles are empty because there was no "BONUS" text string in that space originally.
0:50 Wait, aren't those oranges?
They are, but I used to think they were peaches too.
As game coder it was totally awesome to see a proper explanation of this bug. Complete with memory addresses and everything. Breath of fresh air to the usual simplistic explanation of game bugs. To be fair though, in the days of 8 bit code and memory was a premium, you can understand why this bug exists. Some Java coder straight out of uni is probably screaming Unit Tests and TDD.... Hummmmmm.
I never thought that a key is a fruit.
(that spaceship though.)
Neither of them are fruits
Galaga was also a Namco game as well.
I stumble upon this video out of pure coincidence and now my mind is blown... I love how you explain stuff
Damn. This is really, really cool.
This is my favorite video of yours so far. Excellently detailed explanation - thank you!
1:14 if u blur your vision it looks like pizza
Damn you
or 1/2 of a sandwich
As usual, extremely well put together and easy to follow (even though the subject matter can be complicated). Nicely done!
How about a "behind the scenes" video on how you put these together?
If you could get enough lives to get past level 256, aka you can collect the extra pellets generated by the glitch enough times to clear the level, I'm guessing you would be back at level 1 and could continue the game all the way to level 256 again, at which point I'd think you're now actually out of lives. What would the highest pacman score be in this scenario?
I felt like I was sitting in math class but couldn't walk out. Super entertaining, even if too mind blowing.
This channel fucking rules.
Very nicely explained! I already understood about the 8bit limit, but never really gave much thought as to why there was that mess on the left side of the map.
Awesome explanation as usual! Thanks! But a related curiosity pops up in my mind. When you add 255+1 in this 8-bit system, the 8-bit memory backwards to 0. Ok I understood. _But when 255+1 are computed, does the CPU increase 1 on his neighbor memory address? Or not?_ If somebody knows it, please feel free to comment.
if the instruction used to increase that number was an 8-bit add instruction then no, it will only set a CPU flag to let the CPU know that an overflow occurred and write back that 8-bit value, there are 16-bit add instructions as well on 8-bit CPUs but in this case this does not appear to have been used, it would've worked up to level 65536 otherwise.
The other answers are right. It's incrementing the value in a register, so the register becomes zero and the carry or overflow flag is set. Since the program wasn't intended to handle this, it just ignores this value and moves on.
Yeah. As a programmer i realised that incrementing the neighboring byte in CPU will only cause problems if the code isn't prepared/planned for that. But all this 3 comments above killed my curiosity like a charm. Thanks you all!
Most CPUs I know of perform an Add With Carry. Both numbers are added together along with a Carry Flag and the result is stored and Carry Flag set to the extra bit (and perhaps an Overflow Flag if it has it). So if you start with a cleared Carry Flag, you can add any bit length you want by constantly pulling values from and storing values to memory, but it's up to you to chain the calculation in code. But whenever you stop, that's where the value will wrap. Back then ROM and especially RAM was at a premium price, so you could have a 16 bit level counter but it'd be a waste of money and I doubt they ever expected users to crack a hundred levels let alone 256. If it weren't for the level counter display bug, you could play indefinitely, wrapping back to level 1 after 256.
This is something that Bisqwit mentions in one of his "Cracking Video Game Passwords" videos, where one of the games uses 128-bit integers and he has to work out a way to deal with those in C++, which only supports a maximum of 64 bits for integers.
Thanks for the explanation. I thought it was a programming error with an 8 bit machine not accounting for numbers higher than 255. Glad to see that there was more to it.