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.
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.
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.
@@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.
@@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.
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...
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!
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!
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?
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!
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.
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.
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! 🤘🏼
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!
"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.
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.
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
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.
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.
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!
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.
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!
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.
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!
@@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.
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!
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.
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.
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.
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.
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.
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!
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
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!!
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!
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.
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. :)
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!
This game is more impressive knowing how clever they had to be designing it. One thing I'm not sure I understand is: Why write FD and FE continuously? The zero-hit only has to happen once, why do the nametable lookups have to happen constantly in the empty space? Is it just a matter of ensuring the tilesets actually get swapped? It strikes me as overkill but I may have missed a detail.
That leaves me wondering, though, since CPU is waiting for Sprite 0 hit anyway, why cannot it be used for both setting the H scroll value and changing the CHR ROM bank?I Is it that the MMC2 does not allow to change the bank directly by the CPU, but requires loading of a specific tile ID to do that?
The MMC2 method is already in sync with the pattern reading code. The CPU will be notified that sprite 0 was hit but may not get to it at the same time. Also, programming the bank swap requires something like 5 writes to the same address with bit shifts inbetween, so that's a lot of cycles to spend on a timing-critical application.
The sprite 0 hit could very well have been used for swapping the graphics. But there's one other graphical element that was not mentioned, and that's the "GET UP" text that appears when you're knocked down. The game plots down FD tiles to the left of the text, then FE tiles afterwards in order to make the text use the crowd bank instead of Mac Graphics bank.
@@Dwedit Yes, through this video I was under impression, that there is only one change of CHR banks per frame, at any time. Having more of them per frame would definitely use MMC2's capabilities more.
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.
As a 13 old child i ALWAY’s wanted to know how nes games worked and 8 years later with the use of the internet,i finally found the ansure about that,in fact i remember how somebody told me that supermario 3 was actually waaay too big to run on a nes but that due alternative technology it became just possible,and while i first just trough “wow oh whatever” untill i readed about those enhancement chips and i all the sudden did realize that the nes turn out to be waaay more limited in it’s capabilities then i ever tout before,it’s amezing how even alternative technology has moved forward to do much more with less😁👍
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!
The unorthodox use of animated background tiles can be seen in both the GB and the Turbo versions of Ninja Spirit. And, regrettably, Cyber Shinobi (*shudders*)
I never even considered that Little Mac would have to be in the background layer! It's definitely true that, with the right people, that creativity comes from limitations.
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 🤔
Do the FD and FE tiles have to be placed for each row of tiles, or could they have just placed one at the top and one in the middle to perform the "switch"?
Just one tile is sufficient to trigger the switch. However, the game is designed to sometimes draw text over the bottom area, such as the "Get Up !!" prompt, or the "By decision the winner is..." message. Those need an FD tile to switch the game's font back in, then an FE tile afterwards to get the normal graphics available again.
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.
You just blew my mind. Scrolling and background tiles. I would’ve never guessed. One of my favorite NES games and I’m always surprised by it. Wonder how they get the background tiles in front of the sprites? I’m guessing some trickery coding and one color being the transparent color?
That's just a basic feature of the NES. You can set each sprite to go in front of or behind the background. The opponent in Punch-Out!! is made up of a bunch of smaller sprites, so it's possible to have e.g. the top half be in front of the crowd while the bottom half is behind Little Mac, even though there's only one background layer.
I love the cleverness of programmers from the 80s & 90s. Creativity comes from constraints, not unlimited resources.
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.
The way punch out utilized the NES' limitations will never not be amazing. Another game is recca. Recca did some magic
limitation breeds ingenuity.
@@theghostofthomasjenkins9643: Something of an increasingly lost art form that not enough people appreciate anymore.
I was confused the first time I played Recca because it looked like it didn't belong on the system.
i'm pretty convinced that recca uses voodoo magic to make the nes do all that
Yes.
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.
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.
@@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.
@@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.
do it!
A video looking at all instances of parallax effect in NES games would be interesting, seeing how different programmers approached it.
You've really helped me appreciate how amazing this game is by 1987 standards.
Or 1988?
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...
13:47 I loved that scene where he said "It's scrollin' time" and then scrolled all over the place
I love these deep dives of NES games.
So, basically we're controlling the background instead of a moving sprite? This is certainly unique!
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!
I always thought the larger opponent in Punch-Out was drawn as background tiles, pretty cool to know Little Mac is the background "sprite"
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!
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!
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?
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!
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.
I think it was a larger bank switching space. Not too sure
Little Mac is a background character in his own game
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.
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!
🤘🏼
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!
Thank you!
Bank switching done by hardware compare + the scrolling surprise made this a really fascinating episode. Thanks for dissecting this one for us :)
This is one of the weirdest mappers, totally fascinating to see your breakdown.
Someone was really happy with themselves when they thought up this trick.
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!
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.
I'm never gonna be able to unsee that interrupt sprite 😭😭😭
wait i have not watched the whole video, oh no this better not ruin the game for me, lol.
"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.
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.
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
These videos always, always make me even more appreciative of the creativity of game devs.
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.
Thank you, DaVince!
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.
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!
Mmc5 is such a beast, it would take multiple videos for itself only, and I would watch them all XD
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.
1:29 - Oh?
Ayo it's BoundaryBreak :00
People who say their favorite Christmas movie is Die Hard now have a favorite NES side scroller.
Legit lol from me, Gpig20.
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.
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!
I enjoy programming and find this fascinating. Great work!
Wow, that is some great technical wizardry right there. I never knew Punch-Out was so sophisticated.
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.
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!
Ironically, the thingy on the right is more audience.
Excellent explanation, thank you! This is very relevant to my interests. :)
You definitely inspired me to create this video. Haha
@@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.
It is fascinating how programmers knew to overcome obstacles to deliver the experience we love to this day.
12:43 is the greatest anime twist of all time
Very creative way to work around limitations!
This game absolutely deserves more credits than it is being given for all these tricks.
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!
I think what you do is really cool!
Thanks, Kosmic!
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.
These punch-out videos are some of the most amazing things I've seen.
Out of all the channels i subscribe, this channel I actively check for new videos often. LOVE the technical detail.
Thanks!
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.
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!
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!
The scrolling trick is so easy and neat. I love the way developers handle limitations.
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.
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.
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.
I like how they used the backdrop color for the floor ring, its basically a safe zone to load the new graphic
I feel like such a dork for gasping and going, "Whoa!" when you first showed the scrolling during his dodges.
Each video you do is better than the video before it. Always a great experience!
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!
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
There were similar horizontal scanline parallax effects in both Mega Man 3 and 5, among other games.
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!!
YAY! another POWERFUL video from DISPLACED GAMERS! good stuff!
I can't unsee the world dodging as Little Mac dodges, thanks for that DG! ;)
Ha!
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!
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.
I never imagined that the little mac was drawing as a background!!
Thank you for a great video.
This was fascinating! I love these types of deep dives!
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.
I feel like it is more of a leftover if anything.
Thanks for the video!
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.
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. :)
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!
You are missing out.
Displaced Gamers video comes out, I click, watch, and enjoy. Excellent content, sir.
Thank you!
Great Displacer Gamer video for sure.
Crazy to think Mario and Little Mac are just the background layer
This game is more impressive knowing how clever they had to be designing it. One thing I'm not sure I understand is: Why write FD and FE continuously? The zero-hit only has to happen once, why do the nametable lookups have to happen constantly in the empty space? Is it just a matter of ensuring the tilesets actually get swapped? It strikes me as overkill but I may have missed a detail.
Tiles FD and FE are blank tiles, so it doesn't hurt anything to display them.
That leaves me wondering, though, since CPU is waiting for Sprite 0 hit anyway, why cannot it be used for both setting the H scroll value and changing the CHR ROM bank?I
Is it that the MMC2 does not allow to change the bank directly by the CPU, but requires loading of a specific tile ID to do that?
The MMC2 method is already in sync with the pattern reading code. The CPU will be notified that sprite 0 was hit but may not get to it at the same time. Also, programming the bank swap requires something like 5 writes to the same address with bit shifts inbetween, so that's a lot of cycles to spend on a timing-critical application.
The sprite 0 hit could very well have been used for swapping the graphics. But there's one other graphical element that was not mentioned, and that's the "GET UP" text that appears when you're knocked down. The game plots down FD tiles to the left of the text, then FE tiles afterwards in order to make the text use the crowd bank instead of Mac Graphics bank.
@@Dwedit Yes, through this video I was under impression, that there is only one change of CHR banks per frame, at any time.
Having more of them per frame would definitely use MMC2's capabilities more.
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.
Just two games use MMC2, Mike Tyson's Punch-Out and Punch-Out Featuring Mr. Dream
I don't understand most.of.this but your channel still rules. Thanks for all of it.
I love your videos/classes, DG man! XDDD
Didn't know Punch-Out had this degree of complexity ^^
I love explanations like this!
As a 13 old child i ALWAY’s wanted to know how nes games worked and 8 years later with the use of the internet,i finally found the ansure about that,in fact i remember how somebody told me that supermario 3 was actually waaay too big to run on a nes but that due alternative technology it became just possible,and while i first just trough “wow oh whatever”
untill i readed about those enhancement chips and i all the sudden did realize that the nes turn out to be waaay more limited in it’s capabilities then i ever tout before,it’s amezing how even alternative technology has moved forward to do much more with less😁👍
This video is so awesome! Amazing how devs worked hard to bypass hardware limitations.
Clever! Fantastic video.
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!
Nicely done, yet again.
Awesome, I'm always glad to see a new video, and I somehow missed the one from a month ago? Time to fix that!
The unorthodox use of animated background tiles can be seen in both the GB and the Turbo versions of Ninja Spirit. And, regrettably, Cyber Shinobi (*shudders*)
I never even considered that Little Mac would have to be in the background layer! It's definitely true that, with the right people, that creativity comes from limitations.
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 🤔
Very cool! Really enjoyed this overview!
Pretty pragmatic approach for switching banks mid frame. You plan doing videos showing how other games/mappers accomplish similar things?
Hopefully!
Do the FD and FE tiles have to be placed for each row of tiles, or could they have just placed one at the top and one in the middle to perform the "switch"?
Just one tile is sufficient to trigger the switch. However, the game is designed to sometimes draw text over the bottom area, such as the "Get Up !!" prompt, or the "By decision the winner is..." message. Those need an FD tile to switch the game's font back in, then an FE tile afterwards to get the normal graphics available again.
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.
Cool stuff.
One of the best games ever made. I really want a true sequel to the game with new characters, etc but with the exact same graphics.
You just blew my mind. Scrolling and background tiles. I would’ve never guessed. One of my favorite NES games and I’m always surprised by it. Wonder how they get the background tiles in front of the sprites? I’m guessing some trickery coding and one color being the transparent color?
That's just a basic feature of the NES. You can set each sprite to go in front of or behind the background. The opponent in Punch-Out!! is made up of a bunch of smaller sprites, so it's possible to have e.g. the top half be in front of the crowd while the bottom half is behind Little Mac, even though there's only one background layer.
It's criminal that you only have 1.8k likes at this point.