NES Graphics Explained

  Рет қаралды 219,944

NesHacker

NesHacker

Күн бұрын

In this episode I break down the basics of how graphics work on the Nintendo Entertainment System.
Support the channel on Patreon: / neshacker
Chapters:
0:00 Introduction
1:03 PPU Overview
3:36 CRTs Explained
6:32 Pattern Tables & Palettes
10:32 Nametables & Attribute Tables
13:13 Object Attribute Memory
15:12 Final Example: Megaman
16:43 Conclusion

Пікірлер: 378
@NesHacker
@NesHacker 2 жыл бұрын
*UPDATES* - The PAL / NTSC Section is somewhat lacking and a bit inaccurate. See the many liked comments below for more details. - Many games were specifically coded for PAL, mostly to fix music timing (thanks @Strobo) - Pattern tables contain 4KB of data not 64KB of data. I forgot to divide by 8 when calculating (thanks @HughGenuts)
@CarbonRollerCaco
@CarbonRollerCaco 2 жыл бұрын
Many games were made for one standard or another in terms of their graphics, too. The different resolutions resulted in different pixel proportions when made to fit in 4:3 aspect ratio images, so images that were made for one standard will be distorted in the other.
@jogandocombololo8862
@jogandocombololo8862 2 жыл бұрын
The Pal system from South America, at least at Brasil, is 60 hz, no 50. It’s different from Europe pal system.
@ErdrickHero
@ErdrickHero 2 жыл бұрын
@@CarbonRollerCaco This reminds me of Toy Story on SNES - developed by Traveler's Tales in Europe, the game uses a PAL aspect ratio, despite appearing to be properly adapted for NTSC as far as framerate and timing are concerned. Considering the importance of the film (being a technical marvel and the first of it's kind) I'm kind of surprised Disney/Pixar let that detail go. But it works out nicely because the PAL aspect ratio (what is it, 5:3?) fills more of a modern 16:9 display than the old NTSC standard of 4:3.
@mchenrynick
@mchenrynick 2 жыл бұрын
@@jogandocombololo8862 That is also the frames per second. Europe's TVs were tricky with only 50 frames per second, instead of 60.
@marcelooliveira6612
@marcelooliveira6612 2 жыл бұрын
@@jogandocombololo8862 CRT Tvs on Brazil at beginning handle NTSC 60hz, but in the middle 90s can handle both NTSC and PAL-M/ PAL-N. Major part of video eletronics at that era been based on EUA products (or directly imported); consoles like Nintendo, Super Nintendo and Sega Genesis (called Mega Drive here) use NTSC 60hz, standard that is still used today.
@christeague6681
@christeague6681 2 жыл бұрын
I've been in the NES dev community since 1997, have written several emulators and know quite a bit about the system. This channel is legit - good info clearly presented. We'll done!
@NesHacker
@NesHacker 2 жыл бұрын
High praise, thanks so much for watching!
@bredmond812
@bredmond812 2 жыл бұрын
Have you seen Michael Chiaramonte's game? He streams on his twitch channel called clearvus. He is making a vertical shooter. You can see his vods on his KZbin channel Michael chiaramonte.
@teighan7829
@teighan7829 2 жыл бұрын
Thank you for your hard-work! As I'm sure your aware, those emulators are so important for preserving these games!
@insertmetalusernamehere
@insertmetalusernamehere Жыл бұрын
You sir, are a godsend. I remember the first time I got an emulator to work. At that time I hadn't seen these games In years. The nostalgia was off the charts.
@joeheuft
@joeheuft Жыл бұрын
NESticle, is that you?
@embergamedev
@embergamedev 10 ай бұрын
Making my first NES game, after a week of study and watching your videos, i have managed to draw a heart sprite to the screen. I already had respect for devs of the time, but experiencing it first hand is really starting to put it all into perspective, just how incredible these developers were.
@HughGenuts
@HughGenuts 2 жыл бұрын
The pattern tables don't each have 64 kilobytes of memory. Each pattern table has 256 tiles, each 8x8 pixels; that's 16384 pixels with 2 bit color depth, or 32768 *bits* in one pattern table. That's 4096 bytes, or 4 kilobytes.
@NesHacker
@NesHacker 2 жыл бұрын
Oops! You’re absolutely right… I totally missed that when I was writing the script (and when reviewing the video, haha). Thanks for pointing it out!
@WillSams
@WillSams 2 жыл бұрын
Thanks, HughGenuts. Along with this video, your comment, the NES Dev Wiki's PPU nametables listing, and NES Maker's Discord helped me clear up some confusion.
@ecernosoft3096
@ecernosoft3096 Жыл бұрын
@@NesHacker Everything else is correct though! (as far as I can tell.)
@azforu29
@azforu29 Жыл бұрын
That PPU was unbelievable at the time. Graphics that still hold up, as far as our 2d retro games made today. Games like Shadow of the Ninja, Ninja Gaiden 3, Power Blade 2, Guardian Legend, Vice Project Doom. That stuff could have been made today if I didnt know them already. Just absolutely crazy.
@venom74799
@venom74799 Жыл бұрын
So basically it’s just 16x16 NES being displayed. Gotcha 😉
@rodrigogirao8344
@rodrigogirao8344 2 жыл бұрын
5:15 The map is correct, but the description is wrong. You see, strictly, PAL and NTSC refer only to the color encodings, not the whole systems. After all, analog TV is a monochrome signal first, plus a color subcarrier. So it's more proper to say the US used System M (525-line, 60i) with NTSC color on top, and most of Europe used System B (625-line, 50i) with PAL color on top. And then Brazil used this funky thing called PAL-M, which was System M with PAL color.
@NesHacker
@NesHacker 2 жыл бұрын
That’s a really nice and succinct way of describing it, thanks for the clarifications!
@rodrigomolinsky
@rodrigomolinsky 2 жыл бұрын
I was going to make this comment. As a Brazilian, I never had a problem to import US games to play here. Until I bought my Nintendo 64 in USA. When I rented "Star Wars Racer" for N64, the game was in monochrome, no colors whatsoever. And the weird thing is it was the first game released here with this problem. So it became a lottery and I never understood what was going on, thinking either the game was broken or, more possibly, the console. Rented "Turok 2" and... same thing. But "Banjo Kazooie" played ok, no problem whatsoever. I found out with "International SuperStar Soccer 2000" that the high-resolution mode was causing the problem. With the expansion pack, some games have the option to run in 480i. But with ISS2000, you can barely play in hi-res, so I tested in low-res. BANG: from monochrome to colors! So I was lost, thinking my TV was broken, until I found out about these signal and color subcarrier patterns in the internet.
@chivalrous_chevy1163
@chivalrous_chevy1163 Жыл бұрын
I was gonna point that out as well until I saw your comment. Glad you caught that!
@fungo6631
@fungo6631 Жыл бұрын
​@@rodrigomolinsky That's odd. The resolution shouldn't make a difference here.
@halonothing1
@halonothing1 Жыл бұрын
I'm really glad (and grateful) that you took the time and energy to produce this video, despite the fact that there are already many videos (among other documents) about the same topic. I know some creators have the attitude that you shouldn't do videos on things other channels have already covered. At least sometimes they do. But I'm glad that wasn't the case with this video. I never believed in that philosophy because even if I've seen other videos on NES graphics before, which I have, it's such a complicated and comprehensive subject that there's no way a 20, 30 or even 40 minute video could give you the full picture (sorry for the pun). Even if they did, there's no way a person could memorize everything in it. So it's always great to have multiple resources to consult on the same subject so you can get the same story told from a different perspective, so to speak. Plus that really helps with understanding the material intuitively, as well. If there's something technical in a video or document I don't understand, it always helps a lot to be able to have it explained differently. tl;dr you have an amazing channel that's not afraid to take chances by covering topics others already have. And it's paid off in spades! Thank you for sharing your passion with us.
@NesHacker
@NesHacker Жыл бұрын
That’s a really really nice thing to say. Thank you 😊
@halonothing1
@halonothing1 Жыл бұрын
@@NesHacker It's my pleasure. You've brought me and many others so much joy with these videos. I know that sometimes being the one creating the videos, it sometimes doesn't seem like that big a deal. But I think if it can help me, or someone else forget about having a crappy day, or something that's troubling us etc for a little bit, I think that's something truly special. And the fact that you teach us about this stuff at the same time, instead of it just being some mindless junk with no thought put into it shows some real talent. And is something that I personally really respect. So it's the least I can do to leave a nice message for you and maybe return the favour in my own small way. =) In any case I'm really glad that you enjoyed it. I wish you all the best. Take care!
@serbonkers4130
@serbonkers4130 2 жыл бұрын
This channel deserves more subs.
@NesHacker
@NesHacker 2 жыл бұрын
I think so too, but… I might be biased ;)
@njbair
@njbair 2 жыл бұрын
Wow. I've watched just about every video on KZbin that talks about NES architecture, and while I grasped the essentials, this is the first video that got the gears turning in my head that maybe I can try making my own NES games.
@NesHacker
@NesHacker 2 жыл бұрын
Right on! Yeah I think the system can be a little weird to get used to, but once you do it’s really fun and most stuff is pretty straightforward. Good luck with your game hacking endeavors! :D
@BizerkPixel
@BizerkPixel 2 жыл бұрын
There is no way you have 25 subs rn man. Just randomly found your videos when searching about NES graphics and your entire channel is a gold mine of well crafted video explanations. We need more in-depth, well-organized explanations about the NES, and I'm confident you're the guy to do it!
@NesHacker
@NesHacker 2 жыл бұрын
Wow, thanks so much! It's quite a bit of work to put these together, so it's really awesome to hear from people who find them useful. It would have been great to have this kind of content back when I was first learning, so that's why I decided to start the channel. More people making NES games means more fun for everyone :D
@antusfirenova6426
@antusfirenova6426 2 жыл бұрын
The only reason he has so few subs is that he's relatively new. With some time, I'm sure he will gain a lot! He's already close to 100!
@tupactip
@tupactip 2 жыл бұрын
@@NesHacker no reason to type out the exact same comment but i had the exact same exp
@mtunayucer
@mtunayucer 2 жыл бұрын
@@NesHacker mate! KZbin algorithm picked you up! You are like retro mech ex but focused on nes which is my favorite retro console!
@retrorockerross
@retrorockerross 3 ай бұрын
I'm not a programmer, coder, or designer at all, but I LOVED this video and learning how my childhood favorites were made and worked. Thank you!
@punchabunchabuttons
@punchabunchabuttons 2 жыл бұрын
What an awesome video for someone with 339 subscribers. On point. Clear. Short. Interesting. Cuts right when my brain is about to overheat. Great job and yes, more please!
@NesHacker
@NesHacker 2 жыл бұрын
Thank you! Yes it can be a lot to take in all at once, so I worked quite a bit on the script to ensure that the topics were paced appropriately. I’m happy you noticed! :)
@nakano15
@nakano15 2 жыл бұрын
339 eh? Now is 10,2k. That's one leap.
@Zhilajoon
@Zhilajoon 2 жыл бұрын
Just discovered this video and was so impressed with the content/animations and the clear explanation. Can't wait to binge the rest of the channel. Keep it up!
@renecura
@renecura Жыл бұрын
This channel is so great, and the presentation of each theme is perfect. Please! we need more!
@techBuffy
@techBuffy Жыл бұрын
Im a software pro and this mem tables description makes so much sense to someone who also did some assembly programming on 8085 in College. Having played Nintendo games back in the 90s as a school kid, this is like life going full circles. You played the game as a kid and now you know how that game was made. And now it encourages someone like me to actually fiddle with instruction sets on emulators.. Thanks much
@NesHacker
@NesHacker Жыл бұрын
I'm glad I could bring you back to those happy days 😊
@GraemeIng
@GraemeIng Жыл бұрын
Very good stuff. I only ever made one commercial SNES game (not NES) but found it very enjoyable and this brings back memories. Most of my games were Amiga in 68000. Thanks for the great videos.
@NesHacker
@NesHacker Жыл бұрын
Oh that must have been so much fun! I was too young back when these systems were out and I used to daydream about working on games for them xD. Thanks for watching and sharing :D
@GraemeIng
@GraemeIng Жыл бұрын
@@NesHackeryou inspire me to make a similar channel. I know exactly what system too 😁 Not Nintendo so I won’t be competing.
@NesHacker
@NesHacker Жыл бұрын
@@GraemeIng That makes me *super* happy to hear. More people making programming and retro-gaming videos means more interesting things for everyone to watch :D
@timbrosius
@timbrosius 2 жыл бұрын
I wasn’t searching for this but it was suggested to me and I watched and enjoyed it immensely. I think the algorithm is choosing you. Liked and subscribed, wishing you all the best!
@NesHacker
@NesHacker 2 жыл бұрын
Awesome, I’m glad you liked it! Yeah, I’ve noticed that I am getting a lot more views and subscribers over the last week. So it looks like I am being suggested to more people, and so far the response has been very positive :). Thank you for the kind feedback, it really gets me pumped and excited to work on the next video. Cheers!
@joshb.9380
@joshb.9380 2 жыл бұрын
Wow, great explanation of NES graphics. Your visuals really did a fine job of backing up your narration.
@roberttezak8325
@roberttezak8325 2 жыл бұрын
Hey Ryan. Just found your channel and think it’s really cool that you are doing this. I was pretty excited about it honestly. The content is a little outside of my wheelhouse at this point, but you did a great job of breaking it down. My son even thought it was interesting.
@NesHacker
@NesHacker 2 жыл бұрын
Hey man, it's been a while! Kinda awesome you came across the channel! Yeah, my goal is to help people make the leap into the hobby by providing as much info as I can... but that means it can get a little complicated sometimes. Awesome to hear that you and your son are enjoying it, and thanks for reaching out :D
@FloatingSunfish
@FloatingSunfish 2 жыл бұрын
You just earned a subscriber, my friend! ❤️ Thanks for all your hard work!
@youreperfectstudio4789
@youreperfectstudio4789 2 жыл бұрын
Neat to see such a well made channel with only 200 subs so far! This channel should grow very quickly 😌
@NesHacker
@NesHacker 2 жыл бұрын
Let’s hope so! I really like making the videos so I’m glad people find them interesting :)
@voidexp7180
@voidexp7180 2 жыл бұрын
Great work and much effort to make such quality content! Appreciate every frame of it. Keep going!
@joshmiller887
@joshmiller887 2 жыл бұрын
I just found your channel. Really nice job! I’m interested in all this, and you explain it very well. Keep them coming sir!
@NesHacker
@NesHacker 2 жыл бұрын
Right on, thank you!
@stuart1001
@stuart1001 2 жыл бұрын
Videos like this always interest me. You have a good clear narrative voice 👍
@HardcoreHeely
@HardcoreHeely 2 жыл бұрын
The editing on this is so nice! Can’t wait to see your channel blow up :)
@NesHacker
@NesHacker 2 жыл бұрын
Thanks! NES Development is a somewhat esoteric topic, so we’ll see about all that, haha
@paulspaulding79
@paulspaulding79 2 жыл бұрын
Ryan, I rarely comment on videos, but you clearly put a lot of time into this. Very well done!
@NesHacker
@NesHacker 2 жыл бұрын
Hey Paul, thank you so much, I really appreciate the recognition. :)
@JulienNeel
@JulienNeel 2 жыл бұрын
Thank you for this excellent video. Great content and solid delivery. Happy new subscriber here!
@NesHacker
@NesHacker 2 жыл бұрын
Radical, thank you very much for watching :D
@Byefriendo
@Byefriendo 2 жыл бұрын
Honestly can't believe a channel with this good production quality only has 350 subs. Earned a sub from me :)
@NesHacker
@NesHacker 2 жыл бұрын
Thanks! And I appreciate the sub :)
@yannmarkovich7399
@yannmarkovich7399 2 жыл бұрын
Amazing video. Super clear and it seems covers all conceptual aspects, gives perfect understanding of how that worked, that's exactly what I looked for. Thank a lot
@NesHacker
@NesHacker 2 жыл бұрын
Thanks! I’m really glad you found the video useful :)
@i33th4x
@i33th4x 2 жыл бұрын
Nice work! Much appreciate your contributions to the community.
@splugereport
@splugereport Жыл бұрын
Man, the production quality on these are amazing!
@darkbluedman
@darkbluedman Жыл бұрын
Amazing video! I wanted to start drawing NES style sprites but within the limitations of the NES, and this gave me exactly what I was looking for complete with a whole palette! Thank you so much!
@NesHacker
@NesHacker Жыл бұрын
Awesome, glad I could help! Check out this other video I made where I do sprite editing using a program called YY-CHR: kzbin.info/www/bejne/pYK7pp-Egb2Dmtk
@DiscorporateProductions
@DiscorporateProductions 2 жыл бұрын
This is a wonderful video I sought out because I use a circuit bent NES for video art in music productions. Understanding how the PPU is organized was especially helpful in creating a workflow for working with music and lighting direction. Understand OAM Sprites was specifically engaging. A million thanks for creating this not only informative video but well edited and presented. Amazing!
@sleepysnorlax7728
@sleepysnorlax7728 2 жыл бұрын
Just wanna say, this is an awesome video I‘m glad people are still engaging with retro gaming systems these days, and you‘re explanation was one of the best I‘ve ever seen You‘ve definitely got my sub, excited for more ^^
@NesHacker
@NesHacker 2 жыл бұрын
Awesome, thanks so much! Yeah I was super pleased with this video when I made it, I’m so glad that you like it :)
@Jelly2003
@Jelly2003 11 ай бұрын
Thanks so much for making this video. It’s clearly explained with a good use of visuals. I am currently floating between retro consoles for a project and this was exactly what I needed to get me started with understanding NES graphics.
@ratone1983
@ratone1983 2 жыл бұрын
This is such an accurate description of how the NES graphics work, and the explanation is very accesible. Top quality content!
@christopherbennett1173
@christopherbennett1173 2 жыл бұрын
Really high quality stuff. Can't believe how few subs you have. I liked all you videos ;)
@NesHacker
@NesHacker 2 жыл бұрын
Thank you! Well, I only started the channel a few months ago… so I’m just glad people are finding the videos and seem to enjoy them :)
@aer0449
@aer0449 Жыл бұрын
Thank you so much for educating me ... I'm so amazed to know how things were created back in the time ... Loved it ❤️
@cahlendavidson2921
@cahlendavidson2921 6 ай бұрын
Love the cleanness of the editing
@doc_sav
@doc_sav Жыл бұрын
This is really, really great. I have picked up and known bits of this over the years, but this video really breaks it down in a holistic way so I finally understand how it all relates together.
@smtek
@smtek 2 жыл бұрын
This guy deserves a lot more subscribers, nicely done !
@NesHacker
@NesHacker 2 жыл бұрын
Thanks!
@Fireblats
@Fireblats Жыл бұрын
This is the coolest of beans! Thank you! I imagine putting all of this together was a lot of hard work. And this is just awesome. It's 12am rn and something tells me I'm going to be up until 4 going down this glorious rabbit hole.
@lily91109
@lily91109 Жыл бұрын
I like just hearing people talk about something they're enthusiastic about, even if I don't understand it. Good work!
@TheTogoRojo
@TheTogoRojo 2 жыл бұрын
Amazingly good. I almost understand. This will be helpful learning the code you used to make a development engine.
@NesHacker
@NesHacker 2 жыл бұрын
Thanks!
@_wouter52
@_wouter52 2 жыл бұрын
Very interesting video! I think your channel has been blessed by the algorithm, as it should! :D
@NesHacker
@NesHacker 2 жыл бұрын
I’m happy you enjoyed it :)
@randy7894
@randy7894 2 жыл бұрын
Excellent content and use of infographics. Thanks man.
@Hyper-M
@Hyper-M 8 ай бұрын
I’m working on a modern, but NES-inspired game, and it’s super helpful to understand the systems graphics abilities and limitations. Thanks
@NesHacker
@NesHacker 8 ай бұрын
Heck yeah, I’m glad it was useful!
@bundr
@bundr 2 жыл бұрын
excellent video! thank so much for uploading it.
@svenkarlsen2702
@svenkarlsen2702 2 жыл бұрын
Line scrolls are tricks used for things like status-bars/parallax effects. They change image data during screen refresh. They usually require exact scan-line draw timings which are different across regions.
@rogero8443
@rogero8443 Жыл бұрын
I subbed because you are very succinct with your wordage and are able to explain this concept to people like myself with almost no basis in programming at all. I think I took three VB courses in University back in the day simply for a language requirement yet this was very easy to digest. Thanks for the content, hope you get 10x the subs you have. (I know I was not the target audience, but hey I love the NES and always wanted to know more about why it does what it does as it seems like a mess of programming building blocks inside)
@NesHacker
@NesHacker Жыл бұрын
Haha, I don't really make videos with an intended audience in mind (just look at my development environment course episode). So if you liked my stuff and have fun learning, then imho you *are* the target audience :)
@gijsgroenewegen8212
@gijsgroenewegen8212 2 жыл бұрын
Amazing video! Good explanations :D
@NesHacker
@NesHacker 2 жыл бұрын
Thank you! I spend a lot of time working on the my scripts to ensure that I'm clearly communicating, so it's good to hear that the hard work is paying off :)
@igormonteiro9210
@igormonteiro9210 2 жыл бұрын
excelent way to explain the famicom/nes inside. very easy to understand. thank you
@great.Indian.culture
@great.Indian.culture 2 жыл бұрын
Very informative thank you sir
@jaysistar2711
@jaysistar2711 2 жыл бұрын
Great content! Please post more. Memory addresses to talk to various hardware, etc. would be nice, as well as mapper details.
@bombdatacenters
@bombdatacenters Жыл бұрын
All other explanations either assumed too much prior knowledge for a beginner like me, or left out the specifics that I was looking for. This really clears things up, thanks for making it!
@MarceloMaldonado79
@MarceloMaldonado79 2 жыл бұрын
Great Channel. Keep the good work!
@NesHacker
@NesHacker 2 жыл бұрын
Thanks :)
@EvaFatal
@EvaFatal Жыл бұрын
Nice! Very interesting and understandable!) really well explained, thanks!)
@mr_noodler
@mr_noodler Жыл бұрын
Awesome video bro!
@Donkykong421
@Donkykong421 2 жыл бұрын
Great video, man!
@NesHacker
@NesHacker 2 жыл бұрын
Thank you, thank you!
@warmarin
@warmarin 2 жыл бұрын
Nice video, very comprehensive, I'd just like to point out that here in Chile we have NTSC not PAL
@NesHacker
@NesHacker 2 жыл бұрын
I feel like I should do a whole video on just the evolution of these broadcast systems… but it’s kinda only tangentially related to the NES xD
@01k
@01k 2 жыл бұрын
Nice work!
@NesHacker
@NesHacker 2 жыл бұрын
Thanks!
@harveywallbanger
@harveywallbanger Жыл бұрын
This video was tremendously helpful. I've been hacking NES roms since the first emulators were available but barely had any idea what I was doing. Learning abstract and complicated concepts is frustrating via trial and error, but this explained so much stuff I never would have figured out on my own. The first thing I ever managed successfully was a sprite edit of Mickey on Mickey Mousecapades and it was such an amazing feeling to be able to manipulate games from my childhood. Using a Game Genie as a child helped me vaguely understand how the NES worked and always thought that tool was amazing at the time. Looking forward to the rest of your videos. Immediate subscription.
@NesHacker
@NesHacker Жыл бұрын
Yeah it’s really really hard to learn this stuff without some basis. I’m super glad the video helped!
@DavoMelendez
@DavoMelendez Жыл бұрын
excellent explanation
@ExinerisLP
@ExinerisLP 5 ай бұрын
I don't have a background in the technical side of how nes games are made, but I was fascinating by the parts I understood! Thanks for the great video
@bredmond812
@bredmond812 2 жыл бұрын
Wow! I just found this channel. This is great.
@bbqgiraffe3766
@bbqgiraffe3766 Жыл бұрын
I'm planning on putting a PPU in my homebrew 65c02 computer and this has been pretty helpful, makes the documentation I found online make a bit more sense
@NesHacker
@NesHacker Жыл бұрын
That’s cool as hell
@blatherskite3009
@blatherskite3009 Жыл бұрын
The whole PAL/NTSC thing was a nightmare. Thank the Maker the world eventually settled on a single 2K/4K standard since then! Still, even though people in PAL regions lost out big-time with videogames they arguably won by the same degree with movies, with a noticeably higher SD resolution (625 vs 525 lines) and perfectly smooth motion, albeit with an imperceptible (4%) speed increase.
@NesHacker
@NesHacker Жыл бұрын
It's such a nightmare I couldn't even explain it correctly in this video 😂
@simoncobian2816
@simoncobian2816 2 жыл бұрын
This really makes me want to learn programming but man is it rough to even learn where to get started
@NesHacker
@NesHacker 2 жыл бұрын
It’s tough but it can be really rewarding. I have a video on setting up a development environment and a couple more on learning 6502 assembly. I’m working on the 3rd part of that series and should have the video out next week. Give the videos a try and pop some questions in the comments if you get stuck :)
@85mmphotography2
@85mmphotography2 8 ай бұрын
Scratch
@twentysixhundred7813
@twentysixhundred7813 2 жыл бұрын
Nice video mate! As an Atari homebrew developer and my love for everything retro im going to jump aboard your channel. Subbed.
@NesHacker
@NesHacker 2 жыл бұрын
With a name like “TwentySixHundred” you’re dedicated! I just found my 2600 and 600XL so I’m thinking of doing a video featuring them soon. Thanks for watching & subbing, I appreciate it!
@twentysixhundred7813
@twentysixhundred7813 2 жыл бұрын
@@NesHacker Yeah it was my first console so holds a place in my heart. Got the 2600JR when i was 5 for my birthday. Probably because Atari was selling them cheap in the late 80's. Then i got my NES as a hand-me-down a few years later. At the moment im having fun with developing in 7800Basic which is a cross compiler. Such an underrated system IMO. Look forward to your upcoming videos
@AloanMoreira1
@AloanMoreira1 2 жыл бұрын
Can´t believe how developers can remember all the pieces of how things are set, plus work with a whole language (even assembly)... I´m amazed!
@NesHacker
@NesHacker 2 жыл бұрын
Haha, thank you! I’m glad you enjoyed the video :)
@SA77888
@SA77888 Жыл бұрын
Its not too often ya really learn from a youtube video - brilliant info thank you.
@bpcgos
@bpcgos 2 жыл бұрын
This is awesome... Subbed ... Keep it up.. also got it randomly after sharopolis Video about games that push NES Limit
@NesHacker
@NesHacker 2 жыл бұрын
Thanks for the sub!
@HauntedCorpse
@HauntedCorpse Жыл бұрын
I've been learning Japanese for the past year through a couple phone apps, using mainly Duolingo, albeit at a very slow pace. And I was happy to see what would be "I love Cat-Chan!" at 5:02
@NesHacker
@NesHacker Жыл бұрын
Haha yeah… In addition to Nintendo I am a Japan nerd too 🤓
@HauntedCorpse
@HauntedCorpse Жыл бұрын
@@NesHacker Oh wow, that is awesome!
@Desmobrenner
@Desmobrenner 2 жыл бұрын
Ver good Video and channel... best regards from Europe
@NesHacker
@NesHacker 2 жыл бұрын
Thanks so much!
@gonkdroidincarnate4237
@gonkdroidincarnate4237 2 жыл бұрын
bro your talking about quantum physics and stuff I never 100% fully understood these videos, usually loses me after looking away for a couple seconds BUT I can tell this is really in depth and a good video.
@NesHacker
@NesHacker 2 жыл бұрын
Haha, I guess electrons are technically a quantum phenomenon xD
@gonkdroidincarnate4237
@gonkdroidincarnate4237 2 жыл бұрын
@@NesHacker Lmao
@Abacoot
@Abacoot 2 жыл бұрын
Thank you so much for this video. It is so vital for me to understand how the NES worked as much as possible if I want my future pixel art and game designs to have an authentic retro feel!
@NesHacker
@NesHacker 2 жыл бұрын
Right on! Yeah just keep your palettes set to no more than 4 values for the foreground and 4 values for the background and you’ll get pretty close :D
@ccricers
@ccricers 2 жыл бұрын
One thing I've wanted to see for a long time is a true retro port of Shovel Knight intended to run on a real NES. The devs are aware of the many rules they broke, so I'd find it interesting to see this made within the NES's limitations.
@scotty2hottie626
@scotty2hottie626 2 жыл бұрын
Pretty crazy how technical the og Nintendo/ famicom is, being a 40 year old console. I watch alot of videos on old school concoles and the awesome shortcuts and hacks they had to pull off with such little ram and processing power. It's ingenuous the shit the devs came up with. Love this channel so far, this is the first video I've seen. I'll have to check some more out.
@romanemul1
@romanemul1 9 ай бұрын
Thanks . Nice vid
@NesHacker
@NesHacker 9 ай бұрын
Glad you enjoyed it!
@EricFaries
@EricFaries Жыл бұрын
This is definitely informative, and i can't wait for more. I'm just now going through your videos, and curious to see if you actually go through the process of drawing, and then programming a level. I see many videos explaining HOW the NES and SNES read and display graphics, but i haven't seen any videos that show the developer process of drawing and programming a level itself. Like, did the devs first make a drawing software that let them save a map info to past into the code? Or did the literally map it out on paper, and then type line by line the code for how the map would be rendered? I really want to see the gritty behind the scenes of old school game dev flow. lol
@NesHacker
@NesHacker Жыл бұрын
Yeah, I somehow doubt they did it on paper and entered it by hand. I think most studios built in house software to handle level design and editing then exported it to binary for the ROM. There are a ton of cool data packing schemes you can use to do this, and I am indeed hoping to cover them at some point on the channel to show folks how to make and use their own.
@EricFaries
@EricFaries Жыл бұрын
@@NesHacker It's definitely something i wish was talked about more with older games dev flow. I'm an artist myself, so i really want to see how the old school people did art for games before we had things like Aseprite and engines with tile map editors lol. To see what they had to make in order to produce the maps and art would be fascinating.
@nirosolis485
@nirosolis485 6 ай бұрын
I wish I discovered your channel earlier, I love your content! So I'm late to this video, and I don't want to be _that guy_ but since you went into such detail, I thought it would be somewhat informative to point out that when you say "flat screen" you probably mean flat panel. There existed flat screen CRTs. I used to own a Sony Trinitron, which is a flat screen CRT. The LCD monitors/TVs we use today are officially called "flat panels", owing to their thickness. It's a very common mistake, not a big deal, just thought I'd mention it.
@NesHacker
@NesHacker 6 ай бұрын
Haha that’s perfectly fine, I like learning things… especially stuff like that 👍🏻
@arriagatwo4544
@arriagatwo4544 Жыл бұрын
I cannot program a thing but I enjoy you content 'cos I'm curious and I love the behind scene kind of thing
@NesHacker
@NesHacker Жыл бұрын
That’s the cool part about “edu-tainment” haha :)
@15bits
@15bits Ай бұрын
SECAM NES did actually exist, but it was a pirated clone. Those were popular in ex-USSR in the early 90s. That particular SECAM edition was named Dendy SECAM Classic, if I'm not mistaken, and it was released in 1992. It was a first Russian NES bootleg clone. Subsequent bootleg models of Dendy were PAL only because of two factors, I think. First, multi-system TV sets became much more common by 1994 already. People even modded their old Soviet SECAM-only TVs by soldering PAL decoder. And second, it seems like Dendy SECAM was a failure from a technical POV, lacking reliable color output.
@TukaihaHithlec
@TukaihaHithlec 8 ай бұрын
I remember learning fairly recently that unlike most other systems, the NES’s available colours are ordered by hue and brightness as opposed to RGB. Each palette specifically uses all different hues and brightnesses for each colour to ensure that the sprites read just as clearly on monochrome TVs as colour TVs.
@NesHacker
@NesHacker 8 ай бұрын
Oh that’s neat, I knew it organized the system palette this way but I didn’t think about the implications for monochrome!
@TukaihaHithlec
@TukaihaHithlec 8 ай бұрын
@@NesHacker I’ve developed an interest in how older games and systems used their limitations to their advantage in ways that aren’t obvious, or even become “problems” when emulated on modern hardware. This is one of those examples where now that I know, it stands out when NES style art doesn’t follow that rule lol Another example is how early Nintendo systems rendered frames narrower than TVs, so the displayed frame was stretched. As a result, some developers actually narrowed their art so that things like circles and squares would display as intended. Ironically, first party developers did this the least. Obviously analog signals on CRT screens weren’t as sharp as modern displays, so some sprite work looks much better when a little fuzzier in general. Another way this was utilized was how dithering got blended together and was effectively unnoticeable on intended displays, whereas some people really hate how dithering looks now. Similarly, using vertical stripes (like the waterfalls in Sonic) made them simply appear translucent. The way even relatively newer games utilized resolution was interesting too. I’ve seen people point out funny looking LODs in Mario 64 that were never visible before. PS1 games that used flat image backgrounds like Resident Evil or Final Fantasy were seamless back in the day but look very strange when emulated at higher resolutions now. A lot of games with “low resolution” textures or lower polygon counts did not seem that low when the display was so limited too. Anyhow, I appreciate your reply. That was probably a long read, much of which was either uninteresting or already known, but I get excited sharing lol Hopefully it wasn’t too bad, and if nothing else I’m glad to hear the monochrome compatible palettes were new to you!
@Clery75019
@Clery75019 Жыл бұрын
NES that were sold in France were PAL versions. TV using the SECAM standards were also compatible with PAL. They were usually described as "PAL/SECAM" TV sets.
@ginomctony6773
@ginomctony6773 Жыл бұрын
Just to add some more technical information here, when a CRT television is scanning or moving the electron beam, it actually scans every OTHER line first then goes back and fills in the gaps between those.
@SuperColdLemonade
@SuperColdLemonade 2 жыл бұрын
Love it !
@informatik4lehrplan216
@informatik4lehrplan216 Жыл бұрын
Thank you so much for your hard work! I am on the way to teach kids a little bit about NES-Games-Redesign in our school in Switzerland for ITC education goals. Do you have a suggestion for a nice hex.editor on mac (like Messen for Windows)?
@NesHacker
@NesHacker Жыл бұрын
Honestly I don’t know of an emulator on Mac with a really good hex editor like Mesen… But if you just need to edit hex and don’t need all the bells and whistles for specifically editing NES games then you could try the hex editor plugin for Visual Studio Code, it works pretty well.
@informatik4lehrplan216
@informatik4lehrplan216 Жыл бұрын
@@NesHacker thank you, its a nice idea.
@samghost13
@samghost13 2 жыл бұрын
Hello Hello Soo Cool! THX for showing some NES Dev. stuff Thumbs up! What i really really would like to have is one of those Sprite Machines they had back in the day. That would BLOW MY MIND!!! THX for your stuff i was Stooked to see your Content!
@YNGBLD80
@YNGBLD80 2 жыл бұрын
Hi mate just came across your channel really nice content and detail. I got most of the content however, I'm just lost with regard to the attributes I understood how each attribute byte is split into 4 2 bit segments making a byte of data but get lost when "each segment is used to select the palette for 1 of 4 16 by 16 sections of tile data". I can't see the 16 by 16 other than a whole row made up of 8 attributes boxes by 2 tiles ( H or V) across but I just can't marry up the connection I was wondering can you just clarify the above if possible.
@TheTobylyn
@TheTobylyn Жыл бұрын
Hi! i Love your videos and the editing :D Question: I during a project where i want to read sprite data directly from the cartridge, not running the game itself( maybe with a atmega1284p). I quess i can read the pattern tables directly from the character ROM and the pins connected to it. But i need the OAM data to know how the tiles are connected and how many to each sprite and so on. I'm a bit confused on where to find this data? Is it different from each game, or is there a pattern to look for? I think i have seen and read too many tutorials and got a bit confused:b
@gocanuckurself1
@gocanuckurself1 Жыл бұрын
I used to play video games as a kid in the 90’s, and now in my 30’s I’ve started collecting and playing old Sega and Nintendo games from my youth. I finally understand what bits are 😅😅😅 Thank you!!!!!!!
@jaysonl
@jaysonl 2 жыл бұрын
I just got here from The Algorithm. Call me Subscriber #250. ( I really wanted to wait until you had 254 subscribers, because I'm a nerd) Really good video, you deserve more subs. Your presentation is excellent, you're in good company with the likes of Retro Game Mechanics Explained and Michael Steil. If you've ever seen Michael Steil's "Ultimate Game Boy Talk", there's a bit at the end where he goes into exhaustive detail into how the Game Boy PPU's rendering pipeline works. I'd love to see something similar for the NES... though I haven't watched the rest of your videos yet ;) I've very recently re-acquired myself a nice little 14" CRT television with component in and complemented it with modded NES and SNES consoles. Keep the 8 bit love alive :)
@NesHacker
@NesHacker 2 жыл бұрын
Thanks so much! Yeah I really want to keep going deeper and deeper into the tech as I make content but it's really hard to explain everything all in one go. My primary goal is to help people get into the hobby so for the time being I'm sticking with the basics and building up from there :)
@jaysonl
@jaysonl 2 жыл бұрын
@@NesHacker Good luck! I'm particularly fascinated with the various mappers developed during the NES era, and how they managed to give the console tricks far beyond its original specifications. Questions go through my head like "How the heck do you write ASM when the same memory location could hold different data depending on which bank you have selected? Is it something you have to somehow tell the compiler?" Fun fact: the Apollo Guidance computer used bank switching too!
@NesHacker
@NesHacker 2 жыл бұрын
@@jaysonl Oh I didn't know the Apollo computer used that technique, that's super cool! Makes sense, though, since address space was probably pretty limited on that machine xD
@SHINBAXTER
@SHINBAXTER 2 жыл бұрын
GREAT VIDEO. U GOT A NEW SUB 👍 IS IT POSSIBLE TO DO A VIDEO BREAKING DOWN WHY THE NES SPRITES FLICKER? =)
@NesHacker
@NesHacker 2 жыл бұрын
Yeppers, I want to go over that, will probably do so when I do a deep dive on the PPU itself (the reason has to do with how it works internally).
@freeNode5
@freeNode5 3 ай бұрын
how are the background tiles moved in subtile increments to render the directional scrolling/sliding? does the 32x30 grid account for single tile overhang or something?
@RussianSevereWeatherVideos
@RussianSevereWeatherVideos Жыл бұрын
04:33 Had a very similar TV design back in the USSR when I was a kid. Had a Dendy hooked up to it as well. Which was a bootleg NES copy. Lightgun and all.
@cleberdvm
@cleberdvm Жыл бұрын
Hi! Although you have placed Brazil in the "PAL" category, the analog system used here is PAL-M, it is unique among analogue TV systems in that it combines the 525-line 30 frames-per-second System M with the PAL color encoding system (using very nearly the NTSC color subcarrier frequency), unlike all other countries which pair PAL with 625-line systems and NTSC with 525-line systems.
@samghost13
@samghost13 2 жыл бұрын
Love 64K
@djmobman1727
@djmobman1727 2 жыл бұрын
Subbed
@NesHacker
@NesHacker 2 жыл бұрын
Thanks! :D
@MuteProtest
@MuteProtest Жыл бұрын
I was messing around with making some custom sprites for Dragon Warrior III only to find that the enemy sprites are compressed! Do you happen to know if they are stored in nametables, like you mentioned in this video? I saw somewhere online saying that they are essentially background tiles.
@NesHacker
@NesHacker Жыл бұрын
Huh, that’s very interesting. Might need to take a peek myself sometime and if I do I’ll let ya know :)
@MuteProtest
@MuteProtest Жыл бұрын
@@NesHacker thanks! And thank you for all the great videos as well! This is one of the best resources I have found for nes hacking. I really appreciate how you cover beginner topics as well as intermediate to advanced. Seems like most resources for beginners just say they won't get into advanced topics, which makes it tough to see how the pieces come together. Your channel does a great job of going through every step!
@drinksanddice9528
@drinksanddice9528 Жыл бұрын
is there any way to control the frequency of foreground sprites being written to the PPU. For example, could you load one set of 8 eight sprites one cycle and a second set in between to simulate 16 on a single scan line (I assume it would half the frame rate, but I don't quite understand how PPU cycles and frame rate are related)? I'm not quite sure what terms I could search on dev forums to find an answer.
@IuriFiedoruk
@IuriFiedoruk 7 ай бұрын
Brazil uaed PAL-M that is actually 60Hz, because our electric grid originally came from US, but we use Europe standards more. So it is the best of both words, true colors but faster refresh. People nowadays convert Atari 2600 to this format to have better colors in emulators.
@NesHacker
@NesHacker 7 ай бұрын
Ooh I see that’s pretty cool :)
NES Controllers Explained
16:52
NesHacker
Рет қаралды 80 М.
How Graphics worked on the Super NES | MVG
12:19
Modern Vintage Gamer
Рет қаралды 475 М.
Genial gadget para almacenar y lavar lentes de Let's GLOW
00:26
Let's GLOW! Spanish
Рет қаралды 36 МЛН
Help Herobrine Escape From Spike
00:28
Garri Creative
Рет қаралды 54 МЛН
😅🐱@grechkasan.
00:13
Karina
Рет қаралды 19 МЛН
"Game Development in Eight Bits" by Kevin Zurawel
39:41
Strange Loop Conference
Рет қаралды 534 М.
How Graphics worked on the Nintendo Game Boy | MVG
12:56
Modern Vintage Gamer
Рет қаралды 522 М.
Is 8-Bit Minecraft Possible?
13:56
Inkbox
Рет қаралды 1 МЛН
How NES Games Are STILL Made in 40KB
14:33
Inkbox
Рет қаралды 86 М.
Emulating a CPU in C++ (6502)
52:28
Dave Poo
Рет қаралды 937 М.
NES Architecture Explained
18:28
NesHacker
Рет қаралды 270 М.
NES Scrolling Basics featuring Super Mario Bros. - Behind the Code
17:25
Displaced Gamers
Рет қаралды 114 М.
5 Colors in One Sprite Explained - Audiovisual Effects Pt. 04
8:48
Retro Game Mechanics Explained
Рет қаралды 275 М.
NES Development Environment
14:58
NesHacker
Рет қаралды 340 М.
Silhouette - The secret SNES Emulator developed by Nintendo ? | MVG
12:21
Modern Vintage Gamer
Рет қаралды 396 М.
Genial gadget para almacenar y lavar lentes de Let's GLOW
00:26
Let's GLOW! Spanish
Рет қаралды 36 МЛН