MMC2 Magic - How Punch-Out's Graphics Work

Поделиться
HTML-код
  • Опубликовано: 25 дек 2024

Комментарии • 243

  • @NinjaRunningWild
    @NinjaRunningWild Год назад +63

    I love the cleverness of programmers from the 80s & 90s. Creativity comes from constraints, not unlimited resources.

    • @thardump859
      @thardump859 2 месяца назад +3

      You are absolutely right! This is why I cherish these types of games. Because the people who made them had to think out of the box and make compromises and creative solutions to accomplish what they want. As opposed to nowadays where computers are so dreadfully powerful, that you could make whatever you want with literally no limitations or effort. No foresight for memory space or efficiency in the slightest.

  • @thecunninlynguist
    @thecunninlynguist Год назад +215

    The way punch out utilized the NES' limitations will never not be amazing. Another game is recca. Recca did some magic

    • @theghostofthomasjenkins9643
      @theghostofthomasjenkins9643 Год назад +16

      limitation breeds ingenuity.

    • @EmeralBookwise
      @EmeralBookwise Год назад +12

      @@theghostofthomasjenkins9643: Something of an increasingly lost art form that not enough people appreciate anymore.

    • @dycedargselderbrother5353
      @dycedargselderbrother5353 Год назад +8

      I was confused the first time I played Recca because it looked like it didn't belong on the system.

    • @yoymate6316
      @yoymate6316 Год назад +6

      i'm pretty convinced that recca uses voodoo magic to make the nes do all that

    • @tomyyoung2624
      @tomyyoung2624 Год назад

      Yes.

  • @joeymurphy2464
    @joeymurphy2464 Год назад +211

    When you said "Wait, scrolling in Punch-Out? We'll get to that later", my thought was "Yeah, of course! For the training scene where you run through the city and Doc rides the bike!", but the real answer was MUCH cooler.
    Any chance you might do a little bonus video about how that scene works? The parallax effect is really cool.

    • @ovalteen4404
      @ovalteen4404 Год назад +3

      It's probably just multiple uses of the same thing. Whenever sprite 0 is hit, it gets moved down to the next set point and the scrolling speed is updated. At least that's my educated guess.

    • @Robomandude
      @Robomandude Год назад +7

      @@ovalteen4404 the way NES hardware is set up, you can only have one sprite zero hit per frame. Once the hit happens and you get the interrupt, it stops checking until it resets during vblank.

    • @ovalteen4404
      @ovalteen4404 Год назад +14

      @@Robomandude Bummer.
      So I analyzed the code itself then. It splits the screen into 10 equal-sized scrolling regions (except for first and last). Region 0 is the NY skyline. Regions 1-9 begin at the water line (where sprite 0 is) and cover a few lines each. Region 10 begins at line 158 and covers the bottom half.
      It uses a bit rotation scheme for each region to determine when that region should advance. Obviously the closer it gets, the more bits enter the rotation for that region. It uses a precise timing loop to set the horizontal scroll for each region. So it's doing the NES version of "racing the beam".
      The entire backdrop from sidewalk to NY skyline is background. Coach and Mac are sprites (obviously). The posts are also sprites, and are kept in sync with region 9.
      So everything above the water runs at one slow speed, and everything below the water runs at the same fast speed, and the 20 or so lines inbetween are where all the parallax magic happens.

    • @tomyyoung2624
      @tomyyoung2624 Год назад

      do it!

    • @goatbone
      @goatbone Год назад +8

      A video looking at all instances of parallax effect in NES games would be interesting, seeing how different programmers approached it.

  • @ohnoitschris
    @ohnoitschris Год назад +53

    You've really helped me appreciate how amazing this game is by 1987 standards.

  • @KinuTheDragon
    @KinuTheDragon Год назад +7

    13:47 I loved that scene where he said "It's scrollin' time" and then scrolled all over the place

  • @davidtaylor9999
    @davidtaylor9999 Год назад +9

    When I played this as a teenager in the 80s, I always thought programming this game must have been so much simpler than ‘complex’ games like SMB. There’s no moving around anywhere you want, only 1 screen to deal with, and 1 basic mechanic of game play. I had no idea it required the MMC2 and a bunch of tricks to pull it off, and that it would have been next to impossible without that extra chip. Wow…just wow! Thanks for explaining it!

  • @JACKHARRINGTON
    @JACKHARRINGTON Год назад +54

    I love these deep dives of NES games.

  • @Spellfork
    @Spellfork Год назад +30

    I love that scrolling trick to make Little Mac animate smoothly and the fact that they had to finagle Mario Ref's smooth movement into different tiles for it to also look like smooth sprite movement. Clever stuff indeed. Thank you for making another great video!

  • @themadmallard
    @themadmallard Год назад +5

    that 'whatever this is' in the corner looks like the arm of the ring corner man/coach that stands on the ground of the ring. His arm resting on the ring just happens to coincide where the scroll breaks from top to bottom, that can't have been an accident. How neat...

  • @Outside998
    @Outside998 Год назад +42

    Holy crap, this is so cool to see. I never even considered Punch Out being technically impossible to do with sprites alone. Wow. Would it be too far to call that magic in the programming sense?

  • @Makiburnus
    @Makiburnus Год назад +15

    So, basically we're controlling the background instead of a moving sprite? This is certainly unique!

  • @RJSF9
    @RJSF9 Год назад +23

    Very cool video! I always wondered how PunchOut had such large, flicker-free sprites. I can see why MMC2 was only used for MTPO... seems like it was designed specifically for that game.

  • @orchishgrunt7888
    @orchishgrunt7888 Год назад +3

    I always knew that Punch Out!!! used some trickery, but it was easy to hand-wave it all and say "Eh, MMC2 witchcraft". But it never settled right with me; sure, the gfx stuff made some sense, but to put the smooth animation on that seemed like a lot.
    So now you're showcasing the scrolling flag and how the MMC2 steals the show and saves memory and time. I knew that the work involved would have been heavy, but I had no clue how much time was saved by having the MMC2 go "Whoops, new bank!" half-way through a screen draw.
    I even tried to understand the game, but I didn't fully understand how these pieces fit together. It's really quite amazing to see how much they could do with what they had. I'd have loved to see the Blaster Master and Punchout coders build *anything* together. There's just so much talent between them!

  • @brantstoner7464
    @brantstoner7464 8 месяцев назад +2

    Holy crud this blew my mind like 7 times. I always wondered how the programmers rendered such huge opponents along with Mac, and I figured some of it must really be background, but DANG, the developers really pulled out all the tricks here! SCROLLING?!? I never would have guessed that. Awesome job walking us through this, DG!

  • @saxxonpike
    @saxxonpike Год назад +14

    Bank switching done by hardware compare + the scrolling surprise made this a really fascinating episode. Thanks for dissecting this one for us :)

  • @spartonberry
    @spartonberry Год назад +25

    Nintendo made an updated version, the MMC4, which was used only on three Famicom games. The two Fire Emblem games and Famicom Wars. Though I can't recall offhand what was different from the MMC2.
    I know in the Fire Emblem games, tiles FD and FE are the left and right window border tiles. That means they are literally used to "open" and "close" the menu tileset on each scanline.

    • @blakem2902
      @blakem2902 Год назад +4

      I think it was a larger bank switching space. Not too sure

  • @duhdeedee
    @duhdeedee Год назад +9

    I always thought the larger opponent in Punch-Out was drawn as background tiles, pretty cool to know Little Mac is the background "sprite"

    • @paolozago6123
      @paolozago6123 Год назад +1

      Me too, but that would not make it possible to have the larger opponent overlap with the crowd as it sometimes happens in the video!

  • @TFSned
    @TFSned Год назад +5

    Little Mac is a background character in his own game

  • @bpelectric
    @bpelectric Год назад +10

    This is one of the weirdest mappers, totally fascinating to see your breakdown.

  • @Akuajin
    @Akuajin 11 месяцев назад +1

    These assembler pioneers worked some amazing sorcery to get these games to play the way they did!
    So glad these topics get broke down and explained in a way that not only the seasoned coders can relate to but the non coder can follow and see it in action!
    🤘🏼

  • @fbodirector7464
    @fbodirector7464 Год назад +20

    This is without a doubt my favorite channel on YT. Lately I've started to look for your videos a couple days before they get released.

  • @Yakushii
    @Yakushii Год назад +5

    Holy shit, your videos are such a treat. Not only is the explanation digestible, but these deep dives are tech history. Someone in the god damn 80s came up with this solution to work around the NES' limitations!
    Top moments for me:
    1. Going from "what's with that $FF corridor to Mac's right?" to actually shouting "OF COURSE!!!!" when you revealed the obvious
    2. Going from "what do you mean, scrolling? There's no scrolling here", to "OF COURSE IT SCROLLS!"
    3. Watching Don Flamenco take a barrage behind the outro cards

  • @Hatchet2k4
    @Hatchet2k4 Год назад +2

    I had read about how PunchOut does its graphics but seeing it in motion truly makes the magic apparent. Nintendo sure had some 8-bit geniuses!

  • @rithessa
    @rithessa Год назад +4

    Super excited on the trajectory of these recent videos - Sprite 0 teasing and hopefully some MMC3(or 4, or 5) game dives to follow, like Kirby's Adventure. Love your work!

    • @mazionach
      @mazionach Год назад +2

      Mmc5 is such a beast, it would take multiple videos for itself only, and I would watch them all XD

  • @guttsu
    @guttsu Год назад +5

    These videos always, always make me even more appreciative of the creativity of game devs.

  • @DaVince21
    @DaVince21 Год назад +3

    I haven't watched your channel in a while but every time I come back it's a treat. This stuff is so fascinating and you always explain it extremely well. The visual hints help a lot.

  • @BoundaryBreak
    @BoundaryBreak Год назад +2

    1:29 - Oh?

    • @Weyzar
      @Weyzar 11 месяцев назад

      Ayo it's BoundaryBreak :00

  • @Draugo
    @Draugo Год назад +5

    Someone was really happy with themselves when they thought up this trick.

  • @E4tHam
    @E4tHam Год назад +1

    12:43 is the greatest anime twist of all time

  • @jdurg
    @jdurg Год назад +3

    Another great video. As someone who loves the MTPO game, seeing the internal gears and mechanisms explaining how it all works is fascinating. Thank you so much!

  • @Novastar.SaberCombat
    @Novastar.SaberCombat Год назад

    WOW. 🤯 This video was astonishingly, fantastically clear, exploratory, and revealing. I'm truly shocked at how much more went into the game's design than I thought. And believe me, I appreciated the hell outta this game as a child. It was legendarily stunning.

  • @ajpiskel
    @ajpiskel Год назад +1

    These punch-out videos are some of the most amazing things I've seen.

  • @RealCaptainAwesome
    @RealCaptainAwesome Год назад +3

    I enjoy programming and find this fascinating. Great work!

  • @MatthewDuguay1134
    @MatthewDuguay1134 Год назад

    I'm a indie game dev and am always inspired by your videos. It's amazing how clever they had to be to get a result that's so seamless.

  • @CarbonRollerCaco
    @CarbonRollerCaco Год назад +1

    "whatever that is"
    Dang, you can barely see YOUR OPPONENT'S MANAGER?! They really did put a lot of detail into such an early, basic-on-the-surface game.

  • @RealityStudioLLC888
    @RealityStudioLLC888 Год назад +2

    Love your videos, I always upvote before i even watch them because I know they will be packed with great info. Thank you for making these!

  • @Gpig20
    @Gpig20 Год назад +1

    People who say their favorite Christmas movie is Die Hard now have a favorite NES side scroller.

  • @Kosmicd12
    @Kosmicd12 Год назад +1

    I think what you do is really cool!

  • @GameSack
    @GameSack Год назад +1

    Excellent explanation, thank you! This is very relevant to my interests. :)

    • @DisplacedGamers
      @DisplacedGamers  Год назад +1

      You definitely inspired me to create this video. Haha

    • @GameSack
      @GameSack Год назад

      @@DisplacedGamers I never even gave an ounce of thought that Little Mac could be scrolling left and right. But now it makes perfect sense. Seems to me like the NES could do this game on its own (no cheater chip) if there were no crowd detail? Slightly related but not really: Sega had some games on the Master System that were ALL background tiles and they were woefully choppy.

  • @strat5520
    @strat5520 Год назад

    Out of all the channels i subscribe, this channel I actively check for new videos often. LOVE the technical detail.

  • @VinsCool
    @VinsCool Год назад +1

    Very creative way to work around limitations!
    This game absolutely deserves more credits than it is being given for all these tricks.

  • @opalpersonal
    @opalpersonal Год назад

    that's incredible! it's not often i learn things about the NES, or NES games, i didn't already know. but this one blew my mind!

  • @apollolux
    @apollolux Год назад +1

    I can't unsee the world dodging as Little Mac dodges, thanks for that DG! ;)

  • @fromthegamethrone
    @fromthegamethrone Год назад +2

    I'm never gonna be able to unsee that interrupt sprite 😭😭😭

    • @Xpnvh
      @Xpnvh 4 месяца назад

      wait i have not watched the whole video, oh no this better not ruin the game for me, lol.

  • @NavJack27gaming
    @NavJack27gaming Год назад +1

    YAY! another POWERFUL video from DISPLACED GAMERS! good stuff!

  • @kri249
    @kri249 Год назад

    And this is why I love this channel. You really made it easier to understand printing E and D on those tiles.
    The programmers who innovate to compensate for the hardware at the time impress me more than the games themselves.

  • @woohahcatrim9780
    @woohahcatrim9780 Год назад +2

    Thanks for the video!

  • @manobit
    @manobit Год назад

    I never imagined that the little mac was drawing as a background!!
    Thank you for a great video.

  • @jakenastysnake
    @jakenastysnake Год назад

    Dude I love your videos. It's kinda like seeing into the mind of the developer when you can see and understand how the code creates the illusion on screen.

  • @PsychadelicoDuck
    @PsychadelicoDuck Год назад +1

    Wow, that is some great technical wizardry right there. I never knew Punch-Out was so sophisticated.

  • @marscaleb
    @marscaleb Год назад +1

    Thank you for this video! I've been wondering what the MMC2 chip does that's so different from the others, but I've never had a clear example before this video.

  • @OptimusNiaa
    @OptimusNiaa Год назад +1

    Displaced Gamers video comes out, I click, watch, and enjoy. Excellent content, sir.

  • @allluckyseven
    @allluckyseven Год назад

    This game always puzzled me, but at the point you said that Lil' Mac was built out of background tiles I had an "aha!" moment, looking at the screen, seeing the parts that would and wouldn't scroll left and right. The devs were really clever.
    Always good seeing these deep dives, I always look forward to the next one. Exploring MMC chips and their capabilities would make for a great series!

  • @awesomedata8973
    @awesomedata8973 Год назад

    This is criminally short! -- Loved every second of it though! Thanks for making this!
    Would love to learn more about scrolling tricks like the offscreen "sprite" swaps! -- Seems Punch-Out was full of them!!

  • @AndreLuiz-ec3tl
    @AndreLuiz-ec3tl Год назад

    Each video you do is better than the video before it. Always a great experience!

  • @MissNorington
    @MissNorington Год назад +1

    Just the perfect video for me! Working with tile based stuff and getting your video in the recommendations. This is both inspiring and.... well, INSPIRING!

  • @ProximitySound
    @ProximitySound Год назад +1

    Nicely done, yet again.

  • @igodreamer7096
    @igodreamer7096 Год назад +1

    I love your videos/classes, DG man! XDDD

  • @Choralone422
    @Choralone422 Год назад +1

    This was fascinating! I love these types of deep dives!

  • @davidt3563
    @davidt3563 Год назад +1

    Clever! Fantastic video.

  • @PhilipMurphy8Extra
    @PhilipMurphy8Extra Год назад +1

    Great Displacer Gamer video for sure.

  • @63801170
    @63801170 Год назад

    I've never had a NES or even played one and I don't intend to... but, your explanations and details in presenting such deep technical information - in the most presentable and understandable way is completely brilliant! Just quite an amazing achievement in all your videos, and that's just complements on your presentation, let alone the wonder of breaking-all-this down into byte ;-) size viewer amounts! Cheers to your efforts!

    • @Xpnvh
      @Xpnvh 4 месяца назад

      You are missing out.

  • @HelpTheWretched
    @HelpTheWretched Год назад

    Great episode! Made me feel smart to have deduced what that slab of blue tiles was for, and what scrolling was used for, before you said it. Watching the video felt like solving a logic puzzle; when all the prior points make sense, the final point just slides into place. :)

  • @skyephoenix801
    @skyephoenix801 4 месяца назад

    Poor Little Mac. Even in his own game, he's a background character.
    But seriously, I always find it impressive the lengths developers will go to simulate what they need to sell the experience. Well done. Before this vid, I never would have known that Mario and Little Mac were part of the background. Mac being in front of the opponent's sprite and moving certainly fooled me.

  • @skins4thewin
    @skins4thewin Год назад +1

    It's pretty amazing how limited the capabilities of the NES actually were on it's own, & just how much capability these simple Mapper chips gave the system. Thank god for those chips, or we simply wouldn't have had the amazing experience we had with games on the NES back in the day. I know if it weren't for the NES I surely wouldn't be the gamer that I am now.

  • @fusionspace175
    @fusionspace175 Год назад +1

    To think that punch out began as a uniquely displayed arcade game with it's vertical 2 screen setup, it makes sense it would be uniquely displayed on the NES as well.

  • @onetouchtwo
    @onetouchtwo Год назад +1

    I love explanations like this!

  • @niemand7811
    @niemand7811 Год назад +1

    It is fascinating how programmers knew to overcome obstacles to deliver the experience we love to this day.

  • @SomeIdiota
    @SomeIdiota Год назад

    Awesome, I'm always glad to see a new video, and I somehow missed the one from a month ago? Time to fix that!

  • @moosemaimer
    @moosemaimer Год назад

    Little piece of trivia about sprite 0: the Japanese Mario 2 has worlds A-D, but the letter characters are one pixel taller than the numbers, so as soon as the background starts scrolling the bottom row of pixels of the letter scroll with it and come back around every 2 screens.

  • @nekononiaow
    @nekononiaow Год назад

    When you explained that the MMC2 chip switched banks as soon as it saw an $FE/FD character I wondered why they simply did not add a single such character on screen. But the need for scrolling and the fact that the background tiles are at times overdrawn by Mac and/or other animations probably explain that "carpet bombing" approach.
    Part of me still wishes they had been more subtle but I will generously let that go. 😋
    Thanks for the video!

  • @bobmav5729
    @bobmav5729 Год назад +1

    Great explanation

  • @FagnerLuan
    @FagnerLuan Год назад

    This video is so awesome! Amazing how devs worked hard to bypass hardware limitations.

  • @InGroove2
    @InGroove2 Год назад

    I don't understand most.of.this but your channel still rules. Thanks for all of it.

  • @TwinOpinion
    @TwinOpinion Год назад

    The scrolling trick is so easy and neat. I love the way developers handle limitations.

  • @coolway456
    @coolway456 Год назад +6

    Dude Ive been wanting a nice comprehensive video on this Chip for years! You always hear MMC this and MMC3 that, when MMC2 has little coverage due to its small number of games.

    • @KoopaMedia64
      @KoopaMedia64 Год назад +1

      Just two games use MMC2, Mike Tyson's Punch-Out and Punch-Out Featuring Mr. Dream

  • @LITTLE1994
    @LITTLE1994 Год назад +1

    Cool stuff.

  • @LegendBegins
    @LegendBegins Год назад

    Very cool! Really enjoyed this overview!

  • @clarafedde8674
    @clarafedde8674 Год назад +1

    Just awesome.

  • @GetLostGames1
    @GetLostGames1 Год назад +1

    Great video!

  • @DenkyManner
    @DenkyManner Год назад

    to this day Punch Out looks impressive. Art and technical achievement in perfect harmony. So much life, personality and humour in every boxer, outclassing Super Punch Out imo.

  • @sbialobok
    @sbialobok Год назад

    👍🏻👍🏻

  • @jesusdourado
    @jesusdourado Год назад

    Thanks for the subtitles

  • @joesshows6793
    @joesshows6793 Год назад +1

    Amazing!

  • @natecw4164
    @natecw4164 5 дней назад

    Even when I was a clumsy little kid struggling to beat Mario Bros and blown away by RBI Baseball, I knew some games like Contra and Punch Out had magic inside the cart. I had a very primitive understanding that my NES was a computer made to play games, but seeing this now... I'm just as impressed as that little kid 😂

  • @fattomandeibu
    @fattomandeibu 2 дня назад

    The interesting use of the name table reminds me of International Karate+ for C64, which is a three player Karate Champ clone.
    It has the status bar just like Punch Out that takes a considerable amount of the screen, uses sprites to draw player one and two(three sprites tall and wide each, using a size of 8x16 with sprite scaling used(yes, the C64 can do scaling, but only in increments of 100%) to make them square and look massive), with player 3 being drawn using background tiles, using the name table as a double buffer to draw his next frame and then scrolling the screen 100% every frame to make it look as though player 3 is moving.
    It even uses the unused parts of the name table it never scrolls into(the status bar, which is a good 1/3 of the screen) to store some extra code thanks to the fact the C64s RAM is shared between the 6502 and the VIC 2(C64's graphics chip).

  • @nervaaugustus7089
    @nervaaugustus7089 Год назад

    That thing you were confused about while discussing the Sprite-0 Hit concept is the opponent's manager's arm, as he's leaning on the ring apron.

    • @DisplacedGamers
      @DisplacedGamers  Год назад

      I feel like it is more of a leftover if anything.

  • @gerhalt5663
    @gerhalt5663 Год назад

    Once again the tech stuff is superb 👍 There's definitely enough data to mess around with by means of GG codes. Like, say, painting completely fresh tile graphics replacing the original Little Mac image into something......more exotic.
    In the meantime, I recalled an old trick of getting a hero's sprite go behind the foreground layer, like we can easily see in all-time Capcom's classic - Duck Tales whenever Scrooge walks into a secret wall passage. I'm pretty sure it's a simple trick, but still a nicely looking one 🤔

  • @thehockeygentleman8943
    @thehockeygentleman8943 Год назад +1

    Really loving this channel! Thank you so much for all the work you've been putting into it. It's inspired me to start some SNES dev/hack work. Do you ever plan to cover more of the SNES in the future?

    • @DisplacedGamers
      @DisplacedGamers  Год назад +2

      SNES is a possibility. There is so much to talk about for the various systems out there. NES is fortunate to have so much documentation that helps reduce research time (although it still takes quite some time to reverse).

  • @benox50
    @benox50 Год назад

    I like how they used the backdrop color for the floor ring, its basically a safe zone to load the new graphic

  • @sapinballwizard
    @sapinballwizard Год назад +4

    As soon as you started talking about status bars I went "Oh neat, I wonder where sprite 0 is?" And then you immediately started talking about sprite 0 hit... You know your audience lol!

    • @Kawa-oneechan
      @Kawa-oneechan Год назад +1

      Ironically, the thingy on the right is more audience.

  • @uriituw
    @uriituw Год назад

    This is amazing.

  • @mxg75
    @mxg75 Год назад +2

    The wild thing is the MMC2 was only ever used in Punch-Out!! Crazy that Nintendo would have spent the money to develop and fabricate the chip for only one game.

  • @multicoloredwiz
    @multicoloredwiz Год назад

    love their cleverness... so cool!

  • @jeremyn2626
    @jeremyn2626 Год назад

    It's criminal that you only have 1.8k likes at this point.

  • @willingmrkay
    @willingmrkay 10 месяцев назад

    I knew MTPO used some voodoo to do what it did, but I didn't know it went to these lengths. props to the programmers for just the vison this took.

  • @RakoonCD
    @RakoonCD Год назад

    I don't know much about mmc2 graphics, but I know that Punch Out handles graphics very differently from any other game I've seen, Like Mac being a BG tile. so I hope this video clears things up.

  • @cityhunter1978
    @cityhunter1978 Год назад

    Cartridge games enabled this sort of added hardware upgrade to make more complex games work on ageing hardware. Squeezing every bit of performance out of minimal hardware is what really makes Nintendo great. It continues on to this day with Switch!

  • @FezTheSpaceBiker
    @FezTheSpaceBiker Год назад +3

    You kinda have to love how the Punch-Out team essentially worked around the NES limitations with parallax scrolling, sonething that in itself shouldn't be possible with the NES

    • @Stratelier
      @Stratelier Год назад

      There were similar horizontal scanline parallax effects in both Mega Man 3 and 5, among other games.

  • @emilyz4104
    @emilyz4104 Год назад

    I feel like such a dork for gasping and going, "Whoa!" when you first showed the scrolling during his dodges.