How do Boxers Work in Mike Tyson's Punch-Out!!? - Behind the Code

  Рет қаралды 73,393

Displaced Gamers

Displaced Gamers

Жыл бұрын

Opponent Engines? Secrets in the crowd? Tyson is predictable? Let's dive in!
If you would like to support this channel, here is a link to the Displaced Gamers Patreon page - / displacedgamers
Twitter: / displacedgamers
Facebook: / displacedgamers
Instagram: / displacedgamers
Music by:
/ hariboosx
/ @wolfandraven
#NES #Programming #punchout

Пікірлер: 250
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thanks to all of the people that have shared their findings for Punch-Out!!. I adopted some of the terminology out there for many of the values stored in RAM, however you'll notice that I refer to the Opponent Commands being in the "State Table" and then later in the "Itinerary Table" in the video. Just part of making up the variable names as you go! Sorry for the lack of consistency there. It took a really long time to make this video. The research phase is what soaked up the most time. That being said, it was a fun game to investigate and has been on my list of games to examine for a very long time. It was also difficult to decide what to include and what not to include. Hope you enjoy what was included. Have a great day, everyone.
@guderian557
@guderian557 Жыл бұрын
Can you please investigate the King Hippo logic to see if there is any possibility for him to get up after a knock down under any conditions? I have a vague memory of this happening once as a kid, but have never been able to reproduce it since.
@tomyyoung2624
@tomyyoung2624 Жыл бұрын
Yes Parabens
@LavaCreeperPeople
@LavaCreeperPeople Жыл бұрын
cool
@crtinkering7323
@crtinkering7323 Жыл бұрын
Your videos are criminally underated! there is so much going on, and so much work into these videos. thank you so much for these interesting and entertaining videos!🔥🔥🔥🔥
@NumbFuzz
@NumbFuzz Жыл бұрын
Pleaaaaase more punch out. I was sad when this video was over. Great work as always honestly. You rock.
@Sevenigma777
@Sevenigma777 Жыл бұрын
Punch-Out doesnt get enough credit for how well the artists of that game did such a good job with such large sprites especially Tyson's sprite. They did such a good job and only had the NES' power.
@KopperNeoman
@KopperNeoman Жыл бұрын
Plus enhancement chip, mind.
@ohnoitschris
@ohnoitschris Жыл бұрын
It's a 1987 game, too. You just didn't see big detailed sprites like that very often until the 90s
@LITTLE1994
@LITTLE1994 Жыл бұрын
True
@spamtes
@spamtes 8 ай бұрын
Who doesn't give punch out credit, what a weird comment
@kyleolson8977
@kyleolson8977 Жыл бұрын
"Have you ever wondered how the opponents work in Mike Tyson's punch out?" Since it's the 1980's I assume they're under contract with a promoter such as Don King, Bob Arum or maybe Lou Duva. The promoter schedules the fights with the Broadcast and Cable Networks as well as Viewer's Choice PPV if things are going well. They book the arenas for the shows. They train at a private gym, probably at a high altitude. They do photo shoots for publicity and endorsements. If they're doing really well they can become the spokesperson for a video game like "Bald Bull's Reckless Boxing".
@EvilCoffeeInc
@EvilCoffeeInc Жыл бұрын
The more I learn about punch-out the more impressive it becomes. And what's amazing is this isn't that different from the state machines used to drive animations in modern games! Wild how advanced this feels for something on an 8-bit machine.
@Gatorade69
@Gatorade69 Жыл бұрын
This game always felt ahead of It's time. Still remained one of my favorite NES games throughout the NESs life.
@renakunisaki
@renakunisaki Жыл бұрын
A lot of 8 and 16 bit games used this kind of system. Some were even Turing complete.
@Humbird00
@Humbird00 Жыл бұрын
A "state machine" is very old computer science concept, but a very powerful one. It's basically a way to organize something complex by breaking it into simpler pieces. It lends itself surprisingly well to languages that rely so heavily on indexing.
@BohepansTheThird
@BohepansTheThird Жыл бұрын
The crowd *really does* react to certain things, to give you the timing on actions the opponent takes? I've thought for years that people were just hallucinating, given no one would specifically point out for me where in the crowd to be looking, when to look, what to be looking for...I can't believe that's real. Thank you for enlightening me! Punch-Out!! really is a trip, especially diving into the mechanics and code of how it all works...wow.
@gordontaylor2815
@gordontaylor2815 Жыл бұрын
My WMG theory is that the boxing authorities know that some of the contenders aren't following "the rules of the ring" but don't want to cause a big ruckus going public with that information, so instead "plant" specific people in the crowds to help Little Mac (unwittingly on his part) beat the cheaters "legitimately" by making specific gestures at specific times according to opponent behavior.
@universalperson
@universalperson Жыл бұрын
It was a fairly recent fins too, made news in gaming websites!
@medes5597
@medes5597 Жыл бұрын
​@@universalperson It was more rediscovery. Some digging by pop culture historians found references to the crowd cue in contemporary NES material (magazines, tip books, etc). However the fact that reddit post became such big news shows both how unknown it was and how punch outs difficulty and timing was so legendary that it echoes through to today.
@universalperson
@universalperson Жыл бұрын
@@medes5597 I was a SNES and N64 kid, so I never knew. Makes sense though - those magazines told me about stuff that would only be known on the internet years later.
@Aethelia
@Aethelia 11 ай бұрын
Yeah it's really weird to have this actually explained, it was mentioned in game guides decades ago but of course they didn't give us any details at all about the code and logic behind it like this person showed us.
@EricJacobusOfficial
@EricJacobusOfficial Жыл бұрын
Really like how you broke down the combat engine here. This method must have inspired a ton of other combat designers in the game biz. The combat designer craft needs its own history book, really.
@pheonixmmkc
@pheonixmmkc Жыл бұрын
I find these videos intriguing and as someone trying to reverse engineer other NES games I find this extremely useful and as excellent reference when working on my own projects. Keep making these videos!!!
@ClassicTVMan1981X
@ClassicTVMan1981X Жыл бұрын
I second that!
@tomyyoung2624
@tomyyoung2624 Жыл бұрын
Roblox is going up!
@HughGenuts
@HughGenuts Жыл бұрын
This might be your best video yet, or at least my favorite. For a long while, I thought that the camera flash and the bearded man nod were incidental cues, not intentionally programmed. That is, that the crowd animation was tied to various fight logic RAM values, and those changes *just so happened* to align with player-relevant timings. Finding out that they're formally coded in was a surprise... and even moreso that there's (apparently) only one more unknown one. On a different note, a third Game Genie code to accompany turning off Mike Tyson's punches in the first phase of round 1 would be to set one of his defense values to zero, so that he can be taken down in that time.
@paraflex5621
@paraflex5621 Жыл бұрын
I've been wanting to dig into how the code triggers the crowd indicators ever since they were found. Thank you for figuring it out! It's fascinating when secrets like these are undiscovered for years. Anyhow, keep up the great work, I love these and immediately watch all of your content as soon as it's out!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@arabidllama
@arabidllama Жыл бұрын
There's two other benefits to this approach that went unmentioned: 1) You can have somebody with zero assembly/programming knowledge tune the boxer so it feels good and 2) This method lets a developer live-update the "script" in memory during debugging and tuning, and it will apply immediately without needing to restart anything
@psinjo
@psinjo Жыл бұрын
I can't express my gratitude for the extra time and effort you take, not only to show the values on screen, but the additional graphics simplifying things or used for examples go a very long way to helping all these things make sense, keep up the good work, know it's appreciated!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@HelpTheWretched
@HelpTheWretched Жыл бұрын
You're one of my faves for this stuff because whenever things get technical, you make it relatable to the viewer through demonstrations and common-knowledge analogies, and a reassuring voice helps a lot too.. So I won't lie, I got confused really early this time. It's possible I just need to come back after some sleep, but this episode moves fast!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Sorry about that. This episode was a really tough one to break down into digestible segments because of the number of possible subjects to select for it and the volume of research done prior to scripting. I think I would change the opening and the RAM introductions segment if I were to do it over as those areas were a bit outdated in terms of video design by the time I zeroed-in on writing the later part of the video.
@MNGoldenEagle
@MNGoldenEagle Жыл бұрын
The key thing to take away is that, with many simple games, you can code an enemy (or really, anything) based on just doing some quick logic checks. "Did the player do this? Okay, counter with that. Is the player this close to that bomb? Okay, make it go boom." This works fine with simple behaviors, but can become a mess of spaghetti code (especially in the era of assembly) when you start dealing with more complex AI behavior. The way that they dealt with this in Punch Out was via two means: first, the use of what is called a state engine. This is a common principle in computer science where an object exists in a specific state, and that state has its own behavior and conditions that need to be met to go to a different state. You can almost think of a state as its own mini-program, which just focuses on doing one single thing, and once it determines that a different state should run, it'll switch to that state. For example, with Glass Jaw, he has his default idle state. All this state does is handle drawing his idle animation. Either he remains in this state until the timer runs out, or until he's hit by Little Mac. Once any of those conditions are met, he switches to the state that handles the appropriate condition: throwing his own punch, or reacting to being punched. The second technique they used was effectively a simple scripting language to describe the behavior for a state. This is the large table of commands that Displaced shows that's based off of one byte. This was a very common technique back in the day and allowed you to basically write a simple program with very few bytes that could then be interpreted by the game engine. Because you only need the commands to work in the context of, in this case, the opponent boxer, this lets you keep things extremely focused while still letting you accomplish a lot. Separately, these two techniques helped improve the development of Punch Out!, but by combining them together, they were able to make use of the best of both worlds and create extremely creative opponents in tight memory constraints without having to worry about handling a lot of weird, arbitrary rules all over the place. It's a very elegant solution, and I hand it to whoever designed that code, they did a fantastic job building it.
@HelpTheWretched
@HelpTheWretched Жыл бұрын
@@MNGoldenEagle Thanks a ton for the breakdown. I do have some game programming experience so the concepts aren't totally foreign, and this video makes a lot more sense now that my head is cleared.
@HelpTheWretched
@HelpTheWretched Жыл бұрын
@@DisplacedGamers I regret if my comment sounded like a complaint. I had been meaning to drop a line about how I find your videos very welcoming and easy to follow (most of the time), so it's unusual that I had trouble with it. After some sleep and another commenter kindly summarizing things for me, things are making more sense. Even though I have a fair bit of game programming experience, my brain tends to check out whenever Assembly shows up. :)
@bdjeffyp
@bdjeffyp Жыл бұрын
A fantastically detailed analysis of the engine! It makes so much sense that it would basically be an interpreter that is running through a code script for the boxers, but to see it in action was awesome. The log output was a very nice touch. Thanks so much for all the incredible effort this must have taken to reverse engineer and produce!
@imarobobot8795
@imarobobot8795 8 ай бұрын
Here from a Ben Heck recommendation. Just found your channel and I love it. Just think how lucky us Assembly nerds and gamers are to have a channel like this: someone who understands Assembly, who can modify the code and explain game mechs line-by-line, who's detailed enough to make an incredibly interesting video worth rewatching, and the willingness to share it all with us. Thank you sir!
@DisplacedGamers
@DisplacedGamers 8 ай бұрын
Thank you! I am a Ben Heck fan as well.
@benoitrousseau4137
@benoitrousseau4137 11 ай бұрын
Old RPGs are well known for having several of those byte code "scripting" engines because they had so much behavior to program in a tiny address space. They usually had at least one for scripting maps and one for monster AI, but late SuperNES games like Final Fantasy VI also included scripting to drive combat FX (attacks, spells, potions, etc.) because they had lots and lots of spells and tech with unique FX, and it could get into pretty complex mode 7 and HDMI tricks. It's interesting to see that kind of thing in a genre that is less data driven though, I thought a game like Punch Out would just hardcode all that behavior.
@PowerUpT
@PowerUpT Жыл бұрын
I actually looked into this a while ago because I'm developing a Punch Out esque game. Using a modern game engine streamlined things a lot, as I used a built in animation player for attacks, but I do also have a variable in charge of the state and a timer based attack routine, done with a switch/match statement. Great video, glad to see more of this in detail!
@TheFandomFather
@TheFandomFather Жыл бұрын
I heard "Punch Out esque game", and now you have my attention.
@mrvercetti13
@mrvercetti13 Жыл бұрын
@@TheFandomFather Me too!
@PowerUpT
@PowerUpT Жыл бұрын
@@TheFandomFather It's by no means a 1-1 port of mechanics. I took inspiration from DMC/Ultrakill for stuff like combo multipliers and ranks, and there's a system where different attacks are dealt with different methods (yellow = dodge lr, red = block) and you can also parry red attacks with good timing. Other than that, there's running platforming stages and cutscenes adjacent to something like Undertale.
@TheFandomFather
@TheFandomFather Жыл бұрын
@@PowerUpT You still have my attention. One of my favorite surprise hits for me was Fight Knight, which used a 1st person punching system akin to Punch Out or Teleroboxer.
@PowerUpT
@PowerUpT Жыл бұрын
@@TheFandomFather I can confirm that there will be one suprise first person fight to achieve a specific homage, but I haven't made it yet. If you want to check out the demo it's called Sock It
@arnpoly
@arnpoly Жыл бұрын
Your videos are always appointment viewing, this was no exception. Awesome work on this!
@anon_y_mousse
@anon_y_mousse Жыл бұрын
I'm so glad I found your channel. These videos really explain for me why I've always been so frustrated playing games as a kid.
@kri249
@kri249 Жыл бұрын
I was just thinking the other day that it's been a while since another Behind the code video came out. I can see how this one could have taken a while to investigate. As usual, great video and always fascinating. I never got into sports related games but I now have a whole new application for Punch. Thanks for your hard work mate. It's always appreciated.
@TheDannMannn
@TheDannMannn Жыл бұрын
This is an amazing video. It perfectly illustrates in a practical sense why the "if, else if, else if, etc" is bunk in complicated decision scenarios and meaningfully describes a modular solution one can take. Really excited for part 2!
@Lumaga
@Lumaga Жыл бұрын
This was FANTASTIC to watch. These videos (this one in particular) give me such an appreciation for the ingenuity of Nintendo's early developers. Thank you for putting in the work to deliver us these videos.
@markusfassbinder8275
@markusfassbinder8275 Жыл бұрын
Watching a video from you is always a great pleasure.
@jdurg
@jdurg Жыл бұрын
A very good, in-depth look at the code that drives me bonkers as a speedrunner of this game. Very well done! I look forward to more in the Punch-Out series as the way the game handles and uses RNG to determine everything is incredible.
@Rathclav
@Rathclav Жыл бұрын
I always love to see the fun little ways you come up with to insert code via the game genie to really alter how games work. This was fantastic, keep up the good work👍
@nicholasfrench4374
@nicholasfrench4374 Жыл бұрын
You’re the king, sir. Amazing work!
@soviut303
@soviut303 Жыл бұрын
I knew about the eyes blinking in the background as the "tell" for Tyson, but I didn't realize other characters also had tells. I'm guessing these started life has debug tools that they left in the game.
@gordontaylor2815
@gordontaylor2815 Жыл бұрын
Even if they did, the "tells" justify being in the final game by adding a layer of mystery and intrigue to the game's world ("Why is this guy doing this thing at this particular time? Is he trying to help Little Mac out in some way?") The fact that many of the opponents in Punch-Out are doing things that would be illegal in real-life professional boxing only bolsters the idea that the "tells" are a clue that SOMETHING is going on outside the ring...
@otakubullfrog1665
@otakubullfrog1665 Жыл бұрын
It sounds like there could be quite a bit of fun to be had by modding this game. In addition to creating new boxers, as you mentioned, it would be interesting to see if any boxers have certain attack sequences programmed in that never happen because their schedules make them impossible and then to rewrite those sequences to bring them to life. I could imagine, for example, that perhaps Tyson has more than just an uppercut and a hook, but the developers decided to take his other punches away during testing.
@brantstoner7464
@brantstoner7464 4 ай бұрын
So glad I found this channel! I'm working on a very basic first NES game of my own, and your breakdowns and examples are extremely helpful! This one in particular helped me understand how I could use jump & lookup tables to handle animations and states. Very cool, thanks!
@DisplacedGamers
@DisplacedGamers 4 ай бұрын
Thank you! Glad you enjoyed it!
@RT55J
@RT55J Жыл бұрын
man. this reminds me of how the screen transitions work in Metroid 2, down to the lower nybble of the command byte being interpreted as an argument in some cases. excellent work.
@Ducksen
@Ducksen Ай бұрын
Genuinely amazing video, thank you for helping a simple minded specimen like myself understand
@SumMagnusVir
@SumMagnusVir Жыл бұрын
I love to see a behind the scenes video of how you research and break down these games.
@adriansdigitalbasement
@adriansdigitalbasement Жыл бұрын
What a frigging great video!! It took me a few watch thoughts to fully grasp it all, but you did an amazing job explaining it all. Thanks!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thanks, Adrian!
@bedwablackburn
@bedwablackburn Жыл бұрын
Woo boy, this is gonna be a good one. Thanks as always!
@OnslaughtSix
@OnslaughtSix Жыл бұрын
I wonder if the speedrunning community is aware of how the Tyson intro loop works. Someone call Summoning Salt.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
I think this game has been picked apart quite a bit over the years. I'll bet they know a heck of a lot more than me!
@thecunninlynguist
@thecunninlynguist Жыл бұрын
one of my favorite games ever...my dad and i played this so much growing up, and part of the reason i love watching boxing to this day. Discovering the patterns, little secrets was so fun as a kid.
@Gatorade69
@Gatorade69 Жыл бұрын
Same. Later on my dad bought Evander Holyfield Boxing on the Genesis and while not as fun as Punch Out it is still a decently fun boxing game. Some of the few good memories I have with my dad before he met my step mom who ruined our relationship.
@getoverhere1225
@getoverhere1225 Жыл бұрын
This is badass thank you for doing the research.
@-Terzetto
@-Terzetto Жыл бұрын
Love the channel. Showing my support.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@djhaloeight
@djhaloeight Жыл бұрын
Excellent video. I never knew about the crowd animations referencing specific game values!
@mew7948
@mew7948 Жыл бұрын
Your entire channel is a gold mine, the amount of effort that goes into these videos is insane. Event logging is such a huge step, watching that scroll all I can think about are the ROM hacks of the future!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you, Mew!
@multicoloredwiz
@multicoloredwiz Жыл бұрын
VERY GREAT WORK, MAN!!!
@OmeedNOuhadi
@OmeedNOuhadi Жыл бұрын
Bravo! 👏👏👏🙌🙌🙌 it’s like looking at NES code in Hex Editor but with a tired tour guide trying to bring everything into making sense.
@Jesus_Wept
@Jesus_Wept 10 ай бұрын
I always thought that the special guy in the crowd was a celebrity appearance by Chong....great video!
@sirflimflam
@sirflimflam Жыл бұрын
You are doing god's work, my friend. I really enjoy these breakdowns of mechanics in games I played as a kid.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@zombiecharger65
@zombiecharger65 Жыл бұрын
I never get tired of seeing anything Punch-Out related. Well done!
@nervaaugustus7089
@nervaaugustus7089 Жыл бұрын
Fascinating look into the AI and scripting that drives the boxers of this game. Thanks so much for sharing it.
@VinsCool
@VinsCool Жыл бұрын
This is a surprisingly complex game, very impressive breakdown of the game code!
@philipmurphy2
@philipmurphy2 Жыл бұрын
Appreciate the content, Thanks Displaced Gamers.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@LegendBegins
@LegendBegins Жыл бұрын
This is awesome! Thanks for all the hard work!
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thank you!
@LusRetroSource
@LusRetroSource Жыл бұрын
Enjoyed the video! I love seeing how developers overcame the limitations of the hardware.
@jr2904
@jr2904 Жыл бұрын
For the algorithm, thanks for the video as well!
@jamesrichardreavis
@jamesrichardreavis Жыл бұрын
Yes, more videos like this please!
@stevethepocket
@stevethepocket Жыл бұрын
Hmm... with the opponents' loop being fed a series of bytes that stand in for commands and parameters, it's almost like it's a bespoke virtual coprocessor with its own machine language.
@Humbird00
@Humbird00 Жыл бұрын
This is outstanding. I feel like I could actually program a copy of this game now just from the clues you've given me. It's basically like an array of functions to call with corresponding parameters, and the ability to jump around the array. It's also really interesting to see these super-efficient examples of how to do things. I had never even considered the idea of just using a random boolean to decide between two predefined values. For a strategic game like this it makes sense not to be TOO random. Only enough to keep the player on their toes. One way your presentation could clarify the sequence of actions is to arrange the items into a list so that the commands all line up on a column. But it would take up more vertical space so the text might get too small and hard to read. Still, a list is a familiar concept so presenting a sequence as a list would probably make it easier to understand.
@wiipicross
@wiipicross Жыл бұрын
Fantastic video. Love this crunchy code stuff. I spend all my time in C# so all this hex feels like I'm back in college again. I need to get Mesen and figure out why the bullets seem to do more damage than grenades to the last boss in Jackal.
@michaelcapone175
@michaelcapone175 Жыл бұрын
Extremely cool. Nice video. All I kept thinking was how hard this would be to code on original NES hardware, and how simple it would be to code on today's modern game engines.
@sudarowakatta4543
@sudarowakatta4543 Жыл бұрын
Fantastic!
@ClassicGameHacking
@ClassicGameHacking Жыл бұрын
I love these vids!
@dionelr
@dionelr Жыл бұрын
Sounds like you put a lot of work into this one. Nice job.
@sip9549
@sip9549 5 ай бұрын
i literally looked up mike tyson punch out programming and it gave me the exact thing i wanted
@pikuma
@pikuma Жыл бұрын
So good! 💛
@ai_serf
@ai_serf Жыл бұрын
this is awesome. (will update comment and probably donate a bit as I go through this). thank you
@Gameboy_9917
@Gameboy_9917 Жыл бұрын
this is so weird, lol-- i was just playing punch-out yesterday. great video
@GadgetUK164
@GadgetUK164 Жыл бұрын
Cool work reversing this =D
@DisplacedGamers
@DisplacedGamers Жыл бұрын
Thanks!
@JoshuaMiller-ny5uf
@JoshuaMiller-ny5uf Жыл бұрын
I could have sworn I was subscribed to you... +1 regardless. Glad to have seen this upload!
@crtinkering7323
@crtinkering7323 Жыл бұрын
Thanks!
@LITTLE1994
@LITTLE1994 Жыл бұрын
Interesting stuff.
@niagargoyle
@niagargoyle Жыл бұрын
I had heard about the camera flash with Bald Bull when it was revealed a few years ago, but this video is the first (and so far only) place on the internet where I have heard about other crowd animation triggers. I wonder if there are other crowd triggers or if Bald Bull, Piston Honda, and Macho Man are the only ones.
@johnnydracaena6052
@johnnydracaena6052 Жыл бұрын
Bruh why is this editing so good
@gfdggdfgdgf
@gfdggdfgdgf 2 ай бұрын
"Hey boss should I clean up my code" "just make it work, it's not like anyone is going to analyze the code 35 years from now"
@DisplacedGamers
@DisplacedGamers 2 ай бұрын
😐
@GilbertTang
@GilbertTang 10 ай бұрын
5+ months later confirms this is my favorite episode. So unbelievably good.
@DisplacedGamers
@DisplacedGamers 10 ай бұрын
Thanks!
@clarafedde8674
@clarafedde8674 Жыл бұрын
I don't know which is better, Watching a speedrunner playing punch out blindfolded or learning the code about the AI? Dunno, but I love this game.
@Supperdude9
@Supperdude9 Жыл бұрын
Lot of people don't realize how technical the game is. It needed double the chips in the cartridge to pull off what it's doing, to handle both Mac/Mario (who share the same chip and coloring as Mac's trunks change color when Mario is on and off the screen) and to handle the opposing boxers and their expressions. I forget exactly what was done for the cartridge, but it wasn't your average cart. There's a video on KZfaq that explains it. Think of it like... NES Punch Out cart was the equivalent of the FX chip for SNES. It was special. It's an oversimplification, but there was a lot going on for this game, hardware and software wise.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
I have a follow-up video in the works that will talk about it.
@henke37
@henke37 Жыл бұрын
It's nowhere close to the FX chip. It's just a mapper. All it does is swap out the tileset at designated times. And swap out the accessible program data on command. And raise an interrupt at a given scanline. Comparatively simple tasks. It's a little unusual in how it knows when to swap tilesets, but that's all.
@CA_Don1181
@CA_Don1181 Жыл бұрын
Patiently waiting for Part 2 of 24. 😎
@DisplacedGamers
@DisplacedGamers Жыл бұрын
lol
@Grrrrzzz47
@Grrrrzzz47 Жыл бұрын
i love this game i used to play the game so much that the first curcit felt like a breeze
@GeneralBolas
@GeneralBolas Жыл бұрын
I wouldn't call this "code compression." It's much more like "scripting." This would allow someone who isn't intimately familiar with the overall codebase to easily and quickly build fighters. And they can do it by using a form of "source code" that is relatively safe, compared to directly hacking the binary. They could have relatively rapid iteration without having to reassemble the binary; they can just dump a few new bytes into a data field and be able to see how it all plays out.
@Ehal256
@Ehal256 Жыл бұрын
If the bytecode set is chosen carefully, and this one was, you're replacing a lot of subroutine calls (with 16-bit target addresses) with single bytes, so it can be both scripting and compression at the same time.
@270jonp
@270jonp Жыл бұрын
Awesome viideos,
@alainchristian
@alainchristian Жыл бұрын
So hey, unless I missed it elsewhere, this video definitely is the first time people are learning all the other audience ticks that indicate an opponent' moves. I remember a recent Nintendo interview that said there were more to find after the camera flash and head nod were revealed.
@OnslaughtSix
@OnslaughtSix Жыл бұрын
I had definitely never heard of the sunglasses guy before
@DisplacedGamers
@DisplacedGamers Жыл бұрын
OK. I was wondering about that. I was uncertain if Super Macho Man's sunglasses guy had been mentioned yet.
@snackerfork
@snackerfork Жыл бұрын
@@DisplacedGamers There's a video of it from 2016 that credits SummoningSalt for telling them about it, so it seems it's been known for a while. Also amazing video! The genius of the programming and design of Punch Out really can't be overstated.
@briankarcher8338
@briankarcher8338 Жыл бұрын
Wow, that's pretty sophisticated for an NES game. I was expecting a bunch of if statements, haha.
@CarbonRollerCaco
@CarbonRollerCaco Жыл бұрын
DAMN who would think to look for hints in THE CROWD, especially one with such low detail? But it is hilarious none the less. "Ooh, gotta get a shot of the good ol' Bull Charge!" "Yipes, Honda's going all out!" "Dude, I think the wind behind his punch made my shades slip."
@gordontaylor2815
@gordontaylor2815 Жыл бұрын
Someone suggested the "crowd hints" were something the developers created to help in testing the game. As for why they were left in the finished game, noticing the crowd reactions would naturally prompt speculation by players (especially if you try to come up with an in-universe explanation for them - "Why is this guy doing this thing at this specific time? Is he trying to help Little Mac out somehow?") and encourage them to keep looking for other "Easter Eggs" in the game.
@lankymaccrazyhair264
@lankymaccrazyhair264 Жыл бұрын
Man, I'm so glad that these days we have compiled, interpreted, and JIT languages so that we don't have to program like... this. It's very impressive people were able to write such complexe games in Assembly, especially NES and other 8 bit flavors of Assembly. I'm just glad that most of us don't need to do that any more.
@krunkcleanup2949
@krunkcleanup2949 Жыл бұрын
I'd like to see you do a video on the sprite flicker code for Astyanax. That game has large sprites and somehow its not nearly as noticeable as other games.
@universalperson
@universalperson Жыл бұрын
I feel the way they handled Tyson's pattern is like a stage magic trick - it's not that random, but they make it look random. And it bears repeating, Nintendo had code wizards. Holy cow.
@psp785
@psp785 Жыл бұрын
I've never knew about the crowd animations 😳
@DaWhiteTyger
@DaWhiteTyger 10 ай бұрын
I LOVE the Game-Genie segments!! Moar, please sir? :D Cheating the system that cheated us first? Sign me up!
@matte.309
@matte.309 Жыл бұрын
It's really interesting learning about AI in games, and then looking at old game code. I could be wrong but I guess, the boxers code is kinda like finite state machines?
@nekononiaow
@nekononiaow Жыл бұрын
A finite state machine defines a series of states and the conditions needed to go from one state to another. Here, we have a sequence of commands executed in order with some branches (some random, some directed) redirecting the flow so this is actually a programming language, not a state machine.
@generaljm7560
@generaljm7560 Жыл бұрын
What if Displaced Gamers and Summoning Salt made a collab? I feel like speed-runners have the superstitions of the games they play and people who can understand the code could make interesting finds.
@rodneylives
@rodneylives Жыл бұрын
It might be interesting to compare this system with the ones used in the other Punch-Out games: the two arcade titles, the SNES game, and the one for Wii.
@DisplacedGamers
@DisplacedGamers Жыл бұрын
I agree. Reversing each of those games in order to do the comparison would take an extremely large chunk of time for a single person, though.
@cactoidpinata
@cactoidpinata Жыл бұрын
Thanks for another great video! I'm curious, what's up with the round clock in this game? Everyone always refers to it as minutes and seconds, but to me it looks like it's counting up much faster than seconds.
@rustyjones7908
@rustyjones7908 Жыл бұрын
This is way over my head but I gave a like for information
@scottdehaan5864
@scottdehaan5864 Жыл бұрын
The dream is for someone smart to make an NES sequel(s) to this game with new moves, patterns, and characters from the other games.
@spartonberry
@spartonberry Жыл бұрын
8:50 Wow, a boxer being programmed through commands. That sounds like what I've heard of EarthBound (SNES). It sounds like Nintendo could've practically repurposed the EarthBound engine as their own RPG Maker. That must've been the Satoru Iwata style. :( Iwata must've coded Punch-Out!! as well, as I recall the game even reused the jingle he wrote for the Famicom port of Stargate/Defender II (when he had the mad skills to, they say, code the entire port in a few days for the canceled Atari Famicom deal... for the game to then sit a few years until HAL published it themselves).
@PaulsPubAndBrew
@PaulsPubAndBrew Жыл бұрын
Wow! First, thank you for your hard work. I found a couple things while messing with this game on an emulator that I found interesting and thought I would share. I gave myself Stars against King Hippo. The game didn't have the sprites to animate it, but it did work against him. In fact if you time it perfectly when he has his mouth open it does more damage. Next, you can't knock down Bald Bull. He's the only one in the game who will always get up. With the emulator I could omit the TKO. Bald Bull got up 11 times. On the 12th knock down he stayed down. I am curious why this was. Was it coded for 12? Or was he given some sort of higher stamina that just happens to tap out at that point?
@joshmiller7870
@joshmiller7870 Жыл бұрын
Lil Mac has magic boxing shorts. Color changing white to green.
@jmarra07
@jmarra07 Жыл бұрын
Crazy how complicated this is. I was just watching an old boxing match with Dr Ferdie Pacheco, Muhammad Ali's old corner man, where there were multiple knockdowns and foul points removed and he said "We'll need one of those Japanese computers in order to figure out the score!" Lol
@BenkkuS
@BenkkuS 9 ай бұрын
This is amazing please make a TasBot
@superlink235
@superlink235 Жыл бұрын
To say Punch Out is not a boxing game, its a rhythm game in disguise lol. Rhythm is a huge portion of boxing. Misnomer
@RoninCatholic
@RoninCatholic Жыл бұрын
A massive nest of elseif? Sounds like me trying to program...wait, Elseif also sounds like a cool name for an elf character, I'm gonna use that!
@pr3st00
@pr3st00 Жыл бұрын
It is amazing how they did things back in the NES days... including writing a whole engine! P.S. I'm 45 years old and I had no idea the crowd was trying to give me tips my whole life...
@nickwallette6201
@nickwallette6201 Жыл бұрын
I guess the only way they expected you to know was to publish it in Nintendo Power at some point. :-)
@timothymclean
@timothymclean Жыл бұрын
They're professional boxers, their work is just boxing.
@Axiom-Entertainment
@Axiom-Entertainment Жыл бұрын
Reminds me that some people just assume games spawn in every couple months
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 34 МЛН
Why You Should Always Help Others ❤️
00:40
Alan Chikin Chow
Рет қаралды 110 МЛН
1 класс vs 11 класс  (игрушка)
00:30
БЕРТ
Рет қаралды 3,6 МЛН
Why Does No One Play Punch-Out!! High Score?
27:06
Pap
Рет қаралды 38 М.
Easter Eggs in Punch-Out!! (Wii) - DPadGamer
6:55
DPadGamer
Рет қаралды 723 М.
The Complex Code of Mega Man 2 and How Zipping Works - Behind the Code
16:15
The Bad Jump Design and 30 FPS Gravity of TMNT (NES) - Behind the Code
13:38
The Garbage Sprites in Strider (NES) - Behind the Code
15:00
Displaced Gamers
Рет қаралды 76 М.