NES Graphics Explained

Поділитися
Вставка
  • Опубліковано 4 тра 2024
  • 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

КОМЕНТАРІ • 380

  • @NesHacker
    @NesHacker  2 роки тому +150

    *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 роки тому +3

      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 роки тому +6

      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 роки тому +3

      @@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 роки тому +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 роки тому +5

      @@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 роки тому +573

    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 роки тому +54

      High praise, thanks so much for watching!

    • @bredmond812
      @bredmond812 2 роки тому +3

      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 UA-cam channel Michael chiaramonte.

    • @teighan7829
      @teighan7829 2 роки тому +13

      Thank you for your hard-work! As I'm sure your aware, those emulators are so important for preserving these games!

    • @insertmetalusernamehere
      @insertmetalusernamehere Рік тому +8

      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 Рік тому +4

      NESticle, is that you?

  • @embergamedev
    @embergamedev 11 місяців тому +32

    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 роки тому +144

    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 роки тому +51

      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 роки тому +3

      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 Рік тому +2

      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 Рік тому +1

      So basically it’s just 16x16 NES being displayed. Gotcha 😉

  • @rodrigogirao8344
    @rodrigogirao8344 2 роки тому +74

    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 роки тому +16

      That’s a really nice and succinct way of describing it, thanks for the clarifications!

    • @rodrigomolinsky
      @rodrigomolinsky 2 роки тому +17

      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 Рік тому +8

    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  Рік тому +3

      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!

  • @retrorockerross
    @retrorockerross 3 місяці тому +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!

  • @serbonkers4130
    @serbonkers4130 2 роки тому +11

    This channel deserves more subs.

    • @NesHacker
      @NesHacker  2 роки тому +5

      I think so too, but… I might be biased ;)

  • @njbair
    @njbair 2 роки тому +7

    Wow. I've watched just about every video on UA-cam 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 роки тому +5

      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 роки тому +27

    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 роки тому +5

      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 роки тому +5

      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 роки тому +3

      @@NesHacker no reason to type out the exact same comment but i had the exact same exp

    • @mtunayucer
      @mtunayucer 2 роки тому +3

      @@NesHacker mate! UA-cam algorithm picked you up! You are like retro mech ex but focused on nes which is my favorite retro console!

  • @techBuffy
    @techBuffy Рік тому +7

    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  Рік тому +2

      I'm glad I could bring you back to those happy days 😊

  • @Zhilajoon
    @Zhilajoon 2 роки тому +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 Рік тому +1

    This channel is so great, and the presentation of each theme is perfect. Please! we need more!

  • @joshb.9380
    @joshb.9380 2 роки тому +2

    Wow, great explanation of NES graphics. Your visuals really did a fine job of backing up your narration.

  • @punchabunchabuttons
    @punchabunchabuttons 2 роки тому +11

    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 роки тому +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.

  • @Hyper-M
    @Hyper-M 8 місяців тому +2

    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!

  • @lily91109
    @lily91109 Рік тому +2

    I like just hearing people talk about something they're enthusiastic about, even if I don't understand it. Good work!

  • @Jelly2003
    @Jelly2003 Рік тому

    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.

  • @stuart1001
    @stuart1001 2 роки тому

    Videos like this always interest me.
    You have a good clear narrative voice 👍

  • @ratone1983
    @ratone1983 2 роки тому

    This is such an accurate description of how the NES graphics work, and the explanation is very accesible. Top quality content!

  • @voidexp7180
    @voidexp7180 2 роки тому

    Great work and much effort to make such quality content! Appreciate every frame of it. Keep going!

  • @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.

  • @yannmarkovich7399
    @yannmarkovich7399 2 роки тому +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 роки тому +4

      Thanks! I’m really glad you found the video useful :)

  • @cahlendavidson2921
    @cahlendavidson2921 6 місяців тому

    Love the cleanness of the editing

  • @i33th4x
    @i33th4x 2 роки тому

    Nice work! Much appreciate your contributions to the community.

  • @GraemeIng
    @GraemeIng Рік тому +10

    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  Рік тому +3

      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 Рік тому +2

      @@NesHackeryou inspire me to make a similar channel. I know exactly what system too 😁 Not Nintendo so I won’t be competing.

    • @NesHacker
      @NesHacker  Рік тому +2

      @@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

  • @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 ❤️

  • @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!

  • @Fireblats
    @Fireblats Рік тому +1

    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.

  • @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!

  • @darkbluedman
    @darkbluedman Рік тому +1

    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  Рік тому +1

      Awesome, glad I could help! Check out this other video I made where I do sprite editing using a program called YY-CHR: ua-cam.com/video/oQXulNLXPdw/v-deo.html

  • @splugereport
    @splugereport Рік тому

    Man, the production quality on these are amazing!

  • @timbrosius
    @timbrosius 2 роки тому +5

    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 роки тому +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!

  • @joshmiller887
    @joshmiller887 2 роки тому +6

    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 роки тому +3

      Right on, thank you!

  • @FloatingSunfish
    @FloatingSunfish 2 роки тому +4

    You just earned a subscriber, my friend! ❤️
    Thanks for all your hard work!

  • @roberttezak8325
    @roberttezak8325 2 роки тому +12

    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 роки тому +3

      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

  • @paulspaulding79
    @paulspaulding79 2 роки тому +9

    Ryan, I rarely comment on videos, but you clearly put a lot of time into this. Very well done!

    • @NesHacker
      @NesHacker  2 роки тому +4

      Hey Paul, thank you so much, I really appreciate the recognition. :)

  • @JulienNeel
    @JulienNeel 2 роки тому +10

    Thank you for this excellent video.
    Great content and solid delivery.
    Happy new subscriber here!

    • @NesHacker
      @NesHacker  2 роки тому +4

      Radical, thank you very much for watching :D

  • @randy7894
    @randy7894 2 роки тому

    Excellent content and use of infographics. Thanks man.

  • @youreperfectstudio4789
    @youreperfectstudio4789 2 роки тому +9

    Neat to see such a well made channel with only 200 subs so far! This channel should grow very quickly 😌

    • @NesHacker
      @NesHacker  2 роки тому +3

      Let’s hope so! I really like making the videos so I’m glad people find them interesting :)

  • @Byefriendo
    @Byefriendo 2 роки тому +6

    Honestly can't believe a channel with this good production quality only has 350 subs. Earned a sub from me :)

    • @NesHacker
      @NesHacker  2 роки тому +3

      Thanks! And I appreciate the sub :)

  • @TheTogoRojo
    @TheTogoRojo 2 роки тому +5

    Amazingly good. I almost understand. This will be helpful learning the code you used to make a development engine.

  • @Abacoot
    @Abacoot 2 роки тому +10

    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 роки тому +6

      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.

  • @igormonteiro9210
    @igormonteiro9210 2 роки тому

    excelent way to explain the famicom/nes inside. very easy to understand. thank you

  • @jaysistar2711
    @jaysistar2711 2 роки тому

    Great content! Please post more. Memory addresses to talk to various hardware, etc. would be nice, as well as mapper details.

  • @HardcoreHeely
    @HardcoreHeely 2 роки тому +7

    The editing on this is so nice! Can’t wait to see your channel blow up :)

    • @NesHacker
      @NesHacker  2 роки тому +3

      Thanks! NES Development is a somewhat esoteric topic, so we’ll see about all that, haha

  • @ExinerisLP
    @ExinerisLP 6 місяців тому

    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

  • @svenkarlsen2702
    @svenkarlsen2702 2 роки тому +1

    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.

  • @christopherbennett1173
    @christopherbennett1173 2 роки тому +4

    Really high quality stuff. Can't believe how few subs you have.
    I liked all you videos ;)

    • @NesHacker
      @NesHacker  2 роки тому +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 :)

  • @blatherskite3009
    @blatherskite3009 Рік тому +5

    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  Рік тому +1

      It's such a nightmare I couldn't even explain it correctly in this video 😂

  • @bundr
    @bundr 2 роки тому

    excellent video! thank so much for uploading it.

  • @TukaihaHithlec
    @TukaihaHithlec 8 місяців тому +5

    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 місяців тому +1

      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 місяців тому +2

      @@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!

  • @great.Indian.culture
    @great.Indian.culture 2 роки тому +1

    Very informative thank you sir

  • @smtek
    @smtek 2 роки тому +4

    This guy deserves a lot more subscribers, nicely done !

  • @sleepysnorlax7728
    @sleepysnorlax7728 2 роки тому +33

    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 роки тому +5

      Awesome, thanks so much! Yeah I was super pleased with this video when I made it, I’m so glad that you like it :)

  • @_wouter52
    @_wouter52 2 роки тому +6

    Very interesting video! I think your channel has been blessed by the algorithm, as it should! :D

    • @NesHacker
      @NesHacker  2 роки тому +4

      I’m happy you enjoyed it :)

  • @EvaFatal
    @EvaFatal Рік тому

    Nice! Very interesting and understandable!) really well explained, thanks!)

  • @DavoMelendez
    @DavoMelendez Рік тому

    excellent explanation

  • @mr_noodler
    @mr_noodler Рік тому +1

    Awesome video bro!

  • @rogero8443
    @rogero8443 Рік тому +1

    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  Рік тому +1

      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 роки тому +4

    Amazing video! Good explanations :D

    • @NesHacker
      @NesHacker  2 роки тому +3

      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 :)

  • @harveywallbanger
    @harveywallbanger Рік тому +2

    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  Рік тому +1

      Yeah it’s really really hard to learn this stuff without some basis. I’m super glad the video helped!

  • @bredmond812
    @bredmond812 2 роки тому +1

    Wow! I just found this channel. This is great.

  • @MarceloMaldonado79
    @MarceloMaldonado79 2 роки тому +3

    Great Channel. Keep the good work!

  • @SA77888
    @SA77888 Рік тому

    Its not too often ya really learn from a youtube video - brilliant info thank you.

  • @Donkykong421
    @Donkykong421 2 роки тому +3

    Great video, man!

    • @NesHacker
      @NesHacker  2 роки тому +2

      Thank you, thank you!

  • @bbqgiraffe3766
    @bbqgiraffe3766 Рік тому +1

    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

  • @01k
    @01k 2 роки тому +3

    Nice work!

  • @warmarin
    @warmarin 2 роки тому +4

    Nice video, very comprehensive, I'd just like to point out that here in Chile we have NTSC not PAL

    • @NesHacker
      @NesHacker  2 роки тому +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

  • @AloanMoreira1
    @AloanMoreira1 2 роки тому +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 роки тому +3

      Haha, thank you! I’m glad you enjoyed the video :)

  • @gonkdroidincarnate4237
    @gonkdroidincarnate4237 2 роки тому +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.

  • @twentysixhundred7813
    @twentysixhundred7813 2 роки тому +4

    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 роки тому +4

      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 роки тому +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

  • @15bits
    @15bits Місяць тому +1

    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.

  • @HauntedCorpse
    @HauntedCorpse 2 роки тому +2

    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  2 роки тому +2

      Haha yeah… In addition to Nintendo I am a Japan nerd too 🤓

    • @HauntedCorpse
      @HauntedCorpse 2 роки тому

      @@NesHacker Oh wow, that is awesome!

  • @bpcgos
    @bpcgos 2 роки тому +2

    This is awesome... Subbed ... Keep it up.. also got it randomly after sharopolis Video about games that push NES Limit

  • @Desmobrenner
    @Desmobrenner 2 роки тому +2

    Ver good Video and channel... best regards from Europe

  • @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.

  • @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.

  • @nirosolis485
    @nirosolis485 7 місяців тому +1

    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  7 місяців тому

      Haha that’s perfectly fine, I like learning things… especially stuff like that 👍🏻

  • @fattomandeibu
    @fattomandeibu 2 дні тому

    Some games actually were adjusted to run at correct speed on a PAL TV. It is pretty rare, but SMB1 is an example off the top of my head, and is actually the reason certain ones of those clone systems/multicarts run the game too fast. It's using a PAL ROM and running it at 60fps.

  • @simoncobian2816
    @simoncobian2816 2 роки тому +8

    This really makes me want to learn programming but man is it rough to even learn where to get started

    • @NesHacker
      @NesHacker  2 роки тому +3

      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

  • @scotty2hottie626
    @scotty2hottie626 2 роки тому +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.

  • @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!

  • @romanemul1
    @romanemul1 10 місяців тому +1

    Thanks . Nice vid

    • @NesHacker
      @NesHacker  10 місяців тому

      Glad you enjoyed it!

  • @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!!!!!!!

  • @IuriFiedoruk
    @IuriFiedoruk 7 місяців тому +2

    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 :)

  • @arriagatwo4544
    @arriagatwo4544 Рік тому +2

    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  Рік тому +1

      That’s the cool part about “edu-tainment” haha :)

  • @ttabood7462
    @ttabood7462 7 місяців тому

    I remember seeing those pattern tables or similar when a game wasn't inserted properly. I'd see part of the game and those images.

  • @SuperColdLemonade
    @SuperColdLemonade 2 роки тому

    Love it !

  • @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.

  • @EricFaries
    @EricFaries Рік тому +1

    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  Рік тому +1

      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.

  • @cleberdvm
    @cleberdvm 2 роки тому

    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.

  • @thenothing2786
    @thenothing2786 7 місяців тому

    I don’t know why looking at code for the NES makes me feel all warm and cozy inside but it just does.

  • @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

  • @informatik4lehrplan216
    @informatik4lehrplan216 Рік тому +1

    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  Рік тому +1

      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.

  • @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.

  • @loganjorgensen
    @loganjorgensen 8 місяців тому +1

    Not to crap on the specific hardware setup naming conventions but it's much easier to classify background graphics as "Tiles" and free moving sprites as "Sprites" regardless of platform hardware.
    This simple universal division in named terms really gets to the root of difference, bitmaps with a true alpha channel versus those with only an opaque/common channel. Thus platforms without true sprites behaving like text modes or pure tile-maps.
    There is some pseudo-sprite like setups such as "Background-Sprites" that do big bosses but really the limitations of that define how a Tile is different than a true Sprite. It just gets so muddy when everything is referred to as a "sprite" ijs.🙂

    • @NesHacker
      @NesHacker  8 місяців тому +1

      Yep, unfortunately most people who aren’t working with the system at a programming level just thing of all graphics as “sprites” 😂

  • @Alexs23743
    @Alexs23743 8 місяців тому

    As a Super NES ROM hacker, when it comes to sprite attributes, I'm familiar with seeing the relevant byte referred to as "YXPPCCCT format". You're telling me that for NES sprites, the format is essentially "YXP---CC"? ^^

  • @JD3Gamer
    @JD3Gamer 2 роки тому +5

    Technically there were mechanical tvs before crts but they were so impractical and uncommon that I wouldn’t argue with anyone who wanted to not count them. So I’ll let it slide.

    • @NesHacker
      @NesHacker  2 роки тому +4

      Indeed. CRTs are primary focus here as well since the NES was designed to work with them. I wanted to ensure that the viewer had some exposure to the concept if they hadn’t come across it already as it will be somewhat relevant to discussions of timing and VBLANKS if/when I make videos on those topics. But yes, you’re correct, I should have said “For those who don’t know CRTs were the first commercially viable and widespread type of television.”

  • @neighborhood_k
    @neighborhood_k 2 роки тому

    6:00 - play "We're finally landing" by Home