The Nintendo Entertainment System's Loading Seam
Vložit
- čas přidán 6. 03. 2017
- Why is the right edge of the screen always so glitchy in some NES games? It's all explained right here.
LINKS
Twitter (updates): / retrogamemechex
Patreon (support): / rgmechex
Discord (discussion): discord.rgmechex.com
PATRONS
Markus Persson, Ange Albertini, D Money, Steven, Avi Drissman, Adam Sidelsky, David Mazarro, Chell Jones, Alex Yancey, Jordan Wiens, Glenn Sugden, Juli Mallett, Stephen1704, Daniel L, Rich, Matthew, Leon, Windsdon, Alejandro Cadavid, hyperforce, Brian Henriquez, Aaron, silsha fux, Hans Brigman, Nicholas Wall, & nathanisbored. - Hry
This has bothered me for about 20 years now. It's such a relief to have this weight randomly lifted on a Wednesday morning.
Squiggs 【Glitches - ROM Hacks - Speedruns】 Good to see you here. Love your videos btw.
Woah, thanks friend! This is really cool to me. As a fairly tiny CZcamsr, I would never expect anyone that watches my videos to actually find me in the comment section of another video, hahah. Especially one that's not even about ROM hacking. This is pretty awesome to me and it made my day. Thanks again! :)
Squiggs 【Glitches - ROM Hacks - Speedruns】 this comment thread caused me to look at your videos 😜
Yelling at strangers in a CZcams comment. get a life dude.@@JRPrestonIL
@@JRPrestonIL idiot, it was just in the back of his head because he was wondering, and had no way of knowing or learning this. He wasn't ACTIVELY thinking about it for 20 years. Stop randomly harassing people on the internet, and get a life.
I know a lot of people like to talk about modern game design, but I honestly find things like this, explaining much older games that had much more limited resources, to be much more interesting.
Absolutely! It's fascinating to find out how people worked around the limitations forced on them by the hardware of the day. When you can just do anything you want because there are no restrictions, it's much less interesting.
> When you can just do anything you want because there are no restrictions
There are ALWAYS restrictions. Why do you think we still get new consoles with more powerful hardware?
>the point>
>your head<
Because at that point your kind of going on about polygons = emotions (if you'll excuse the meme). I mean, yes, without people specifically pushing the limits of hardware we wouldn't get where we are today at least in terms of gaming, but while the greater freedom of creation is better for creators, to me it always seems that the better products have always come about because of creators figuring out creative solutions rather than just going with the bigger and the better. Sure, there are bound to be limitations to how large or detailed you can make a 3d platformer in Unity, but it will I am much more interested in hearing about the making of Super Mario 64 or how Banjo Kazooie overcame its severely limited memory space to transition between songs by basically making 8 different versions of the same track. And don't take this to mean that there aren't interesting behind-the-scenes discussion to be had on the big-budget newer games -- I for one would like to hear a bit about the Witcher 3's cutscene process -- but the fact is that it's more interesting to see a painting done entirely in red paint produce a wide range of colors than to see a painting with a full palette that's either dull or clashing with itself.
Restrictions often breed a lot more beauty than having all of the tools in the world available to you, at least that's what makes it interesting to me :)
you should watch some of john carmack's keynote talks at quakecon. super interesting
"look at this deep and complex issue. Here is how they could have fixed. But didnt bother because TVs just covered the edges on their own' holy shit
it's not quite that simple. If they fixed it that way, as he says, it would limit the number of objects you could show on a scan line. This was a BIG deal in NES games- it's responsible for the infamous NES 'flicker'.
The simple fact is that the hardware was being pushed to its limit and minor visual glitching at the edge of the screen that didn't interfere with gameplay, and where many contemporary TVs didn't show the image anyways was considered acceptable.
@@SavageGreywolf ^^ 100% agreed, the video didn't say "I can do this better" rather "here's why they didn't get rid of it despite being able to"
Now I am wondering how Kirby did it better.
@@djflugel79
I'm not sure, but my guess would be that they update the name tables in such a way that more of the weird tile effects happen on the left side of the screen, where 8 pixels are already covered.
I believe this was one of the first games to support horizontal and vertical scrolling simultaneously on the NES, so this could've been an issue that might've simply been overlooked or not even realized until so late into the production of the game that going back to fix it might not have been easily accomplished. What seems like such an obvious fix now might not have been so obvious back then as the problem itself was new.
I read this as "Nintendo's Loading Scam"
That would be a completely different video...
Same.
I read it as the NES loading screen
I read it as Nintendo Loading seen
I read this as "Nintendo's virtual console scam"
ME TOO
Another brilliant upload. Even its most basic form, games development seemed like a real challenge.
The Game Show yeah devs today are spoiled, back in the day you had to work in machine code to make console games.
Shaun Dreclin Well, assembly, but yeah, you actually needed to know how the hardware worked.
Game development is still a superset of computer science. From kinematics and dynamics (physics) to just rendering pixels on a screen, a software engineer will find it hard to become a competent developer even though any competent developer could become a great software engineer.
Oh, and the developer to machine language gap has been superseded with a communication gap between developer and developer. On teams with 4 or more individuals, the primary difficulty is having everyone on the team know what they are doing. If two or more people are working on the same code, code conflicts occur
Game programming is a very small subset of computer science (which by definition encompasses every kind of programming related topic). Also the idea that game programmers are more talented than the average software engineer is naive, very few of the most advanced techniques of computer science are used in games and game coders rarely do research and instead just borrow from more advanced fields. Advanced techniques are confined to very limited areas (rendering, physics), most of the rest of what we do on a day to day basis is frankly very ordinary.
I would like to see a behind the scenes video on how you make these videos. Specifically, the synchronized gameplay and explanatory diagrams. This makes the concept very easy to follow, even for non-techies. Kudos!
I'd like to know that too, how do you record the video and make the cut-out of the map into an animated diagram ??
Anyone else vote for this? ;)
This comment needs more votes!
I'm only speculating here, but I suspect that he wrote a bunch of custom code :) Possibly extended an open-source emulator to add features which record debug output into image files dumping the nametables with the boxes / lines drawn in?
6 years later but he wrote a program that transforms NES data into after effects data
I remembered these "glitchy" edges from the first day I bought SMB3. I bought that game same day it was released! I recall that the funky edge bothered me the most in some screens, such as the treasure rooms. Given the time, I played it on CRT TV sets and it was always very apparent no matter TV. I wonder if it is more pronounced on PAL version.
I never noticed it because my TV cuts it off. lol
Throughout the video I was wondering if you'd mention how TVs tended to cut off the edges anyways, glad you got to that at the end. A lot of things older games did (or got away with) was because they were for display on TVs at the time and not monitors.
A lot of the monitors of the day were also CRT.
@@MaddTheSane Monitors didn't overscan like TVs though
Graphics were made with the fuzzy "pixels" of crts in mind, too. Link's purple hair in LttP was a big meme for a while but if you played it in the 90s on a faded crt it looked fine, probably better than if they used a "correct" color
Nice explanation. I always wondered why SMB3 used horizontal mirroring even though vertical scrolling in that game is pretty rare, 95% of the time you're just scrolling horizontally on the ground of the level. Seems like it would make more sense to have the seam visible during vertical scrolling. I'm thinking it might have something to do with the split rendering with the status bar at the bottom, but not sure.
I believe that may have been the reason, but it would still be possible. Kirby's Adventure was able to do that, so I don't see why SMB3 wouldn't. KA was released 5 years after SMB3, so make it was just better knowledge of the system.
dotsarecool Kirby also scrolls more slowly because it has to maintain two copies of the nametable in VRAM.
I'm not up to any sort of level of knowledge on this stuff, but what if they "letterboxed" the game at the top and bottom and made it appear to be widescreen?
Why should they prevent some of the visible screen area from displaying the game.
Possibly because glitches when scrolling vertically would have been more visible and distracting, since it's usually empty space.
Dude, this editing is so slick and effective
Man. Kinda makes me appreciate and miss the old games of game development. Devs had to be SMART, accurate, and clever. The amount of complexity for even something as old as the NES just to pull off what we perceive as a simple game is incredible.
no wonder why a japanese company excelled.
Maybe im stereotypical but from this to tears of the kingdom Nintendo has a pretty clear history of innovation
I've ALWAYS wondered this. Thank you so much.
Now explain that weird glitchy line over Shadow Man in the stage select screen of every copy of Mega Man 3!
That gets into a concept commonly called a "scanline interrupt", where you have program code execute at the precise moment when the PPU reaches a certain line during its display cycle. This is how you can take the single, rigid background layer and manipulate it into appearing to be more flexible than it is, e.g. Super Mario Bros. 3 changes the vertical scroll position at the ~208th line (in horizontally scrolling levels) so that the HUD (which always occupies the lowest 4 rows in this case) appears locked into place at the bottom.
Technically right at the HUD cut-off in SMB3 is a similar problem to what you're seeing with MM3's stage select. In either case, a scanline interrupt occurs and you've done work in the background but you just didn't have quite enough time between the previous scanline ending and the new one beginning, and the overrun is manifesting as a glitchy in-between mess. While scanline interrupts are used for the triple-split of the stage select in MM3, the greater question is really why they didn't shut off the effect once it locks into place.
That was simply an incorrectly set up interrupt timing for the MMC3 mapper chip. Same with some of the other line glitches during fights against larger bosses.
The intro jingle never gets old.
For the longest time I was always wondering why that one side of the screen looked like that. Glad this video finally explains it. Its something I can put to rest and not wonder about anymore. Great job on explaining it.
Wow. Im speechless. That was brilliant.
This is so neat. I remember we weren't allowed to play NES on the newer TV in the living room since Mom and Dad thought the lines on the right were the TV getting damaged by the NES, so we used to play on the smaller TV in the back room.
If you had a REALLY old TV back then from the maybe the 70s, yeah, the overscan and framing around the tube were big enough to hide things like that but televisions OF that time from the mid-to-late 80s like we owned had smaller framing that still let you see a little bit of the loading seam and the masking on the left. It also depended on the model and company that manufactured the TV. I remember my grandma's TV from 1984 had a thick outer frame around the tube but the NES would always displayed it's video a full inch from the left edge of the frame so the left-side masking in Mario 3 was VERY apparent.
My friend on at Valve says that Half Life 3 is delayed for this very reason.
Half Life 3 is slated for release sometime in July of this year. We are currently adding fine touches to the maps and verifying continuity in the story. The game makes use of new rendering techniques, but we will not release a public demo or announcement about Half Life 3 until March.
HL3 will be released one week after the brexit.
Half life 3 is dead. Please stop spreading this joke.
@@TemporalDriver I don't work at Valve as a game designer and I am not willing to reveal my position because I am not even supposed to be talking about this. Anyway we have had to push the announcement and right now it is slated for June 5th. I am not guaranteeing anything; it may very well be pushed again.
@@TemporalDriver People don't usually believe me because of the meme, but it's coming.
Glad I’m not the only one who saw the blocks turn green towards the right of the screen.
They turned more colors, but that was the easiest to spot due to its stark contrast from the terrain.
I've been supporting you on Patreon for a while, but the consistent high quality of your videos has convinced me to increase my contribution. Thanks for the awesome videos :D
Thank you!
@dotsarecool huh?
For each video I put out I feel like it's not as good as the last one. I've always guessed it's just me being hard on myself, but it's good to have someone else confirm that for me, heh.
I'm pretty sure that "huh?" meant to be a confused expression since he didn't know that you were the uploader.
HandreyAlex Thats right
ANOTHER FUN FACT:
Games that use bi-directional scrolling (like Mario 3) COULD have also got around this problem by using veritcal mirroring instead, because the top and bottom eight pixels of the display are automatically cropped off of the display anyway. However, Mario 3 could not utilize this because they needed to use horizontal mirroring so they could have the status bar at the bottom of the screen, otherwise the status bar would shift oddly as the edge of the map gets updated over it.
This is also why Mario 3 levels are set with the same height of about two screens, so that they never have to move the status bar.
I spent the whole video waiting for you to mention the fact that 80s and 90s TVs would cut off these seams anyway and that we only got super aware of them in the emulation era. You saved it to the last sentence!!
I didn't notice it in the emulation era because... I played the SNES version instead.
Why are two name tables mirrored? around 0:39, you mention that the NES has enough VRAM to do two name tables, and mirroring is used to fill the other two. Is there some reason there needs to be four?
Avagadro22 Not an expert, but my guess is that the 4 tables allow the NES to support diagonal scrolling, even though most games would not use it.
At around 2:35 you can see how SMB3 takes advantage of the 4 tables to scroll diagonally. I don't think that kind of movement would be possible with just 2 tables.
You can have extra hardware in the cartridge that enables the full 4 tables to be mapped in, I don't think any game actually did that though.
They're mirrored because the memory address lines are all wired into the same place on the circuit board.
I was confused as well, but this is how I understand it. He said the PPU has enough "room" for 4 name tables. However, there is only enough VRAM for 2. Therefore, the PPU just draws the 2 name tables in VRAM twice.
The name tables tell it which tiles to draw in a large grid. The NES only has enough memory for 2 grids, but you can choose whether they stack horizontally or vertically, or you can provide extra memory in the cartridge to use all 4 at once.
SMB3 took the route of 2 grids stacked vertically, since most TVs would crop the miscolored tiles anyway.
These graphics you've made makes understanding this so much easier. Thank you!
Dude, thank you so much for this explanation! Growing up I always wondered why the colors of the screen edge were all wonky! Even playing this game on my sony PVM a few months ago, my head started to itch. Especially since my brain is wired in such a way that it attempts to understand the technical aspect of everything. What a hell of a thing to stumble on. I instantly subscribed after seeing how well you described everything!
This is really educational! Well explained!
I had no idea these kind of mechanisms went into platformers (and probably other kinds of
Games with moving backgrounds)
Subscribed!
I just love the thought and quality of your content. Thanks for putting in the hours to make these.
just found this channel with this video... I love it. it looks like you answer so many things I have wondered but couldn't find answers to!
1:17 The blue rectangle showing where the screen is has a slight discrepancy in it. The screen is always 256 pixels wide and 240 pixels high, but most emulators have the screen resolution set to 256x224p and have eight pixels cropped at the top and bottom by default. Some emulators, like BizHawk, have no way of changing this to make the screen resolution correct, but other emulators, like FCEUX and Nestopia, have video settings that can change the screen resolution.
Wow, thank you so much, I just recently found your channel and this is the 4th video I watched. Thanks for the info alot! I've been wondering why that happens for a long time now. You just answered my several year question! Thank you!
I am sure there's a technical reason for this, but why didn't they use horizontal scrolling and just hide the artifacting under the status UI at the bottom of the screen?
Focus on the Idea The status UI is part of the background layer.
When scrolling vertically this scrolls as well, but by careful timing you can scroll the screen twice to restore it's position.
However this means if you scroll vertically on an area larger than the nametable height, you have to do weird extra calculations about where the scrolling part ends and the status bar begins otherwise you overwrite the status bar itself.
The vertical scrolling in SMB3 is limited to an area 2 screens tall, so you never have to deal with this.
The status bar is always the bottom of the entire nametable, and because you don't rewrite any horizontal rows of the nametable, only vertical columns, you don't have to worry about it as much.
As long as you write vertical columns of tiles say, 50 tiles high instead of the full 60, you won't mess up the status bar.
If you used a horizontal nametable with vertical scrolling you would now have to track which row you are updating and ensure you never write over the part of the display that is the status bar.
It's a minor bit of extra work, but still more work.
Plus, it wouldn't actually hide the problem.
Now instead of being visible at the sides of the screen the exact same problem would show up at the top of the screen and at the edge between the play area and status bar.
Remember the status bar is NOT on TOP of the background, it is part of it.
So it doesn't hide anything..
I'm sure you get this all the time but THE CHANNEL JINGLE AT 0:13 IS GENIUS!
Here, this will make it even cooler: czcams.com/video/2VHySu_jaPw/video.html
Your channel deserves more subscribers, it's always so interesting and well explained :D
Good video...I never noticed this as a kid because my television covered up the edges. Pretty rude awakening when I noticed this happening all the time in an emulator.
Right? I thought either the emulator or the ROM file were corrupt the first time I notices that.
It's nice that emulators nowadays offer configurable cropping of the game display to "emulate" overscan.
Thanks for this really good explanation. I always wondered why SMB 3 has glitches on the right side, and i wondered even more why they were still present in the virtual console release. Now i know. Keep up the great work!
Even on old TVs of the era (1970s TVs), this was noticeable by other means. Kick a shell into a block that is right at the edge, and you’d see phantom artifacts of that block on the other side. I’m surprised this glitch wasn’t mentioned in the video.
Great video, always wondered why that happened. Keep explaining!
Just found you, and I love the subject matter so I bet you will see a bump of at least one on most your videos in the next day or so from me. Thanks for putting this info out!
This was your first video I watched. I always wondered about this glitch, and you explained it in an in-depth very well made way. +1 Subscriber!
Today Devs: Hardware is too underpowered.
Old Devs: Pluuuaasee!
JustMe! "Pluuuaasee!"?
Plu-Aw-Sei
Impressive indeed. However modern devs have a point. Back then, consoles were more up to speed with their hardware. It was entirely possible to get a pc for the same or a higher price than a console that out performed it in raw power. Nowadays, consoles lag far behind in comparison to PCs.
Sounds plausible.
Today's Gamers: i can count those pixels
Old Gamers: Pluuuaasee!
Your visuals are so detailed and perfect, thank you.
I've needed this channel for so long, so happy to find it
Awesome video. The entire time, I kept thinking that I should write a comment about how overscan likely masked this issue anyway before emulators came along - and then you addressed even that. I've subscribed.
I'm always impressed when I learn about some of the work arounds that developers had to use back in the day. This was really interesting! Thank you!
Very impressive video, so glad I subscribed. Keep up the great work I love watching and sharing with my friends.
Very high quality. Nice job. It's these sorts of technical limitations that I find really interesting about game development, even if I don't do it myself.
This is an awesome and insightful look into the rendering behind NES games. Subbed.
I love videos like this that actually explain why stuff like this happens in detail instead of just pointing it out. now subscribed!
Gosh, the production quality of this channel has been amazing ever since apparently. Glad to have found this
These videos are really interesting. Please do more!
This reminds me of the HMOVE artifact that created short black "comb" lines at the left side of the screen in many Atari 2600 games (you can see it really clearly in the attract mode of Space Invaders, when the screen background cycles through screensaver colors). There, it was prominent enough that TV overscan usually wouldn't just cover for it. Some games hid it by just drawing a vertical black bar on the left (which could be expensive, since game objects were in much, much shorter supply on the 2600), or using an entirely black screen background. But few players really cared--they didn't have high expectations for game graphics in those days.
Nice work! I love having video game bugs explained in detail.
You should make a video about the glitchy line in the lower left corner. It's just above the left side of the status bar. You'll see a short line flickering and changing colors and such. I heard it has something to do with IRQs that the game uses, but that's as much detail as I know. It'd be great to get your side of things Cheers. And thanks for the amazing channel. =D
Great video. Slick animation, nice explanation, and high quality. Keep it up.
WOW this is a fantastic video for someone who is just starting with NES development and learning about the inner workings of the NES. Thank you so much!
What a great explanation!
I remember this being quickly mentioned at a GDQ years ago, but I could never find the clip and I've been wondering ever since.
GDQ often mentions interesting topics but glosses over the specifics or digs into the details but lacks enough charisma to make it interesting. This channel does an excellent job of finding the sweet spot between interesting/cursory and dull/informative.
Your editing is epic!
Enjoyed the vid. Well put together. Looking forward to more.
5 star editing dude! great content you deserve far more subs!.
That is pretty mindblowing. I always wondered why that was, now I know!
That's your first video I watched, very informative and helpful, thanks.
Very cool and clear explanation. Something I'd noticed but never thought about!
Good explanation, thanks. To be noted, the Master System also exhibits the same issue only with horizontal scrolling games, but not for the same reason. What actually happens on Master System is that there is only room to put exactly 1 screen in length, which means that there is no room left to prepare what is going to be displayed when the screen will scroll. To deal with this, developers also used to hide one column of 8 pixels to the left of the screen. This means that they had no other choice but to refresh constantly the background by chunks of 8 pixels, which worked in the end of course. The issue does not exist for vertical scrolling games as there is room available top/down.
The Master System was a very well built system, but still this is a bit of an oversight from SEGA, as well as the fact that it cannot flip sprites.
Great video! Very informative!
This is something I've been curious about for years but never curious enough to actively search for an answer. Very relieved to finally know
Very deep explanation of a typical NES Game "Anomaly".... Thanks
That was informative and interesting. Thanks for the hard work!
Very good explanation. Easy to understand. Thanks!
duuuuuuuuude this video is awesome. If there's more like this I'm totally subscribing.
Hey, I've got another question. You pointed out that the NES has a masking feature to hide the leftmost eight pixels with a solid color matching the background tiles.
Is it possible to disable this through gamegenie? I'd like to see the results of this myself with Super Mario Bros. 3, and Megaman 6, two games where the line is quite visible.
I'm pretty sure it's possible, but I so far haven't been able to produce a code that would work properly...
verygood video thankyou i figured it had to be because of something like this but i didnt know it related to the palettes and i never heard of the masking thing either i just always assumed that was the sortof render border
I was explained this previously but not very well your video explains everything quite well thank you
I always thought my copy was damaged or something. This is a very interesting and well done video! 🙏
I noticed this for the first time about 4 years ago when playing Mario 3 on my original NES and looked it up immediately. At first i thought there was something wrong with my game or NES. This loading seam is also present on the 3DS port of Super Mario 3. I learned a few new things about this glitch. Thank you for the info!
The 3DS version just an NES emulator running a ROM of SMB3, so that bug will stay there
This is a really cool explanation, keep it up!
i mean i always figured it was because it was loading the next part of the screen but never really cared about the details
Found this in my recommended. Was very pleased to have watched this video.
Amo tu canal! Me encanta! Felicitaciones!
This video is amazing, you deserve far more subscribers and views
"Cut off by the overscan" its amazing how many things exploited overscan and not just in gaming.
I can say I've learned something useful today! Great video ^^
Not sure why this video was recommended to me, but I was definitely not disappointed by the content. You just earned yourself a new subscriber sir.
Thanks youtube recommendations.
Interesting, informative....great job!
this is a really cool video, thanks for putting out this information
Thanks for clarifying this! 😊
Most CRTs I've used from the 80s onwards have had room to display about 168 color clocks of information going across, which works out to about 252 pixels on the NES. But many older sets, you probably could not see that much.
Outstanding video!! Will see more..
Great video! Subscribed!
I actually learned all of this about a year ago when I was studying the NES's capabilities. I spent a lot of time studying the nametables while playing games, trying to understand what was going on, and asking questions on message boards. It would have been so much easier to follow if I could have just witched this video to explain it!
Nice video. U just earned yourself a subscriber!
Very well visually represented. good work.
This was a great video! Thanks for the entertainment!
the way to fix this is to have the palette swap on the other side of the screen, e.g. have it swap immediately upon loading in another 8x8 tile. this would put the loading seam on the left side of the screen, which would be masked by the PPU.
Great vid! Glitchy edges are definitely worth it for the ability to fly in SMB3.
I always thinking of this glitchy graphic especially in the Ice fortress in World 6.
The loading seam is also visible in MOTHER / EarthBound Beginnings. The game allows for diagonal movement, which at the time was a rarity in JRPGs, so there was a seam visible at the top of the screen.
Great work !!
This is a brilliant explanation. Thank you. :)
Great video!