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

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

КОМЕНТАРІ • 249

  • @DisplacedGamers
    @DisplacedGamers  Рік тому +138

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

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

      Yes Parabens

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

      cool

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

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

      Pleaaaaase more punch out. I was sad when this video was over. Great work as always honestly. You rock.

  • @Sevenigma777
    @Sevenigma777 Рік тому +211

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

      Plus enhancement chip, mind.

    • @ohnoitschris
      @ohnoitschris Рік тому +15

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

      Who doesn't give punch out credit, what a weird comment

  • @BohepansTheThird
    @BohepansTheThird Рік тому +101

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

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

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

      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.

  • @EvilCoffeeInc
    @EvilCoffeeInc Рік тому +78

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

      This game always felt ahead of It's time. Still remained one of my favorite NES games throughout the NESs life.

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

      A lot of 8 and 16 bit games used this kind of system. Some were even Turing complete.

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

      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.

  • @kyleolson8977
    @kyleolson8977 Рік тому +13

    "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".

  • @pheonixmmkc
    @pheonixmmkc Рік тому +53

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

  • @EricJacobusOfficial
    @EricJacobusOfficial Рік тому +34

    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.

  • @paraflex5621
    @paraflex5621 Рік тому +16

    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!

  • @HelpTheWretched
    @HelpTheWretched Рік тому +28

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

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

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

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

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

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

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

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

      I heard "Punch Out esque game", and now you have my attention.

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

      @@TheFandomFather Me too!

    • @PowerUpT
      @PowerUpT Рік тому +4

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

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

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

  • @HughGenuts
    @HughGenuts Рік тому +14

    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.

  • @bdjeffyp
    @bdjeffyp Рік тому +9

    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!

  • @IanZamojc
    @IanZamojc Рік тому +3

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

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

  • @psinjo
    @psinjo Рік тому +12

    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!

  • @otakubullfrog1665
    @otakubullfrog1665 Рік тому +4

    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.

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

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

      Thank you! I am a Ben Heck fan as well.

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

    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

  • @OnslaughtSix
    @OnslaughtSix Рік тому +3

    I wonder if the speedrunning community is aware of how the Tyson intro loop works. Someone call Summoning Salt.

    • @DisplacedGamers
      @DisplacedGamers  Рік тому +3

      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!

  • @TheDannMannn
    @TheDannMannn Рік тому +3

    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!

  • @-Terzetto
    @-Terzetto Рік тому +5

    Love the channel. Showing my support.

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

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

      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.

  • @Jesus_Wept
    @Jesus_Wept 9 місяців тому +1

    I always thought that the special guy in the crowd was a celebrity appearance by Chong....great video!

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

    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.

  • @arnpoly
    @arnpoly Рік тому +3

    Your videos are always appointment viewing, this was no exception. Awesome work on this!

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

    This is a surprisingly complex game, very impressive breakdown of the game code!

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

    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.

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

    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!

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

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

    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.

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

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

    Watching a video from you is always a great pleasure.

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

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

    I love to see a behind the scenes video of how you research and break down these games.

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

    You’re the king, sir. Amazing work!

  • @brantstoner7464
    @brantstoner7464 3 місяці тому

    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!

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

    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.

  • @alainchristian
    @alainchristian Рік тому +3

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

      I had definitely never heard of the sunglasses guy before

    • @DisplacedGamers
      @DisplacedGamers  Рік тому +3

      OK. I was wondering about that. I was uncertain if Super Macho Man's sunglasses guy had been mentioned yet.

    • @snackerfork
      @snackerfork Рік тому +4

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

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

    Excellent video. I never knew about the crowd animations referencing specific game values!

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

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

    This is badass thank you for doing the research.

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

    Appreciate the content, Thanks Displaced Gamers.

  • @multicoloredwiz
    @multicoloredwiz 11 місяців тому

    VERY GREAT WORK, MAN!!!

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

    This is awesome! Thanks for all the hard work!

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

    Woo boy, this is gonna be a good one. Thanks as always!

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

    Sounds like you put a lot of work into this one. Nice job.

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

    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.

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

  • @ClassicGameHacking
    @ClassicGameHacking Рік тому +3

    I love these vids!

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

    You are doing god's work, my friend. I really enjoy these breakdowns of mechanics in games I played as a kid.

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

    this is so weird, lol-- i was just playing punch-out yesterday. great video

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

    Fascinating look into the AI and scripting that drives the boxers of this game. Thanks so much for sharing it.

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

    Yes, more videos like this please!

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

    I never get tired of seeing anything Punch-Out related. Well done!

  • @Ducksen
    @Ducksen 19 днів тому

    Genuinely amazing video, thank you for helping a simple minded specimen like myself understand

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

  • @sip9549
    @sip9549 4 місяці тому

    i literally looked up mike tyson punch out programming and it gave me the exact thing i wanted

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

    Enjoyed the video! I love seeing how developers overcame the limitations of the hardware.

  • @JoshuaMiller-ny5uf
    @JoshuaMiller-ny5uf Рік тому

    I could have sworn I was subscribed to you... +1 regardless. Glad to have seen this upload!

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

    Cool work reversing this =D

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

    Fantastic!

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

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

    Thanks!

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

    this is awesome. (will update comment and probably donate a bit as I go through this). thank you

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

    For the algorithm, thanks for the video as well!

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

    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.

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

    i love this game i used to play the game so much that the first curcit felt like a breeze

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

    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.

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

    Bruh why is this editing so good

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

    Interesting stuff.

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

    So good! 💛

  • @GilbertTang
    @GilbertTang 9 місяців тому

    5+ months later confirms this is my favorite episode. So unbelievably good.

  • @DaWhiteTyger
    @DaWhiteTyger 9 місяців тому

    I LOVE the Game-Genie segments!! Moar, please sir? :D Cheating the system that cheated us first? Sign me up!

  • @270jonp
    @270jonp Рік тому +1

    Awesome viideos,

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

  • @gfdggdfgdgf
    @gfdggdfgdgf Місяць тому

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

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

    Patiently waiting for Part 2 of 24. 😎

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

      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.

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

    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.

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

    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?

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

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

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

    I've never knew about the crowd animations 😳

  • @joesshows6793
    @joesshows6793 Рік тому +4

    Amazing! Can you expand and include how the graphics are designed? It always seemed like they were using trickery to get the graphics to not slowdown or flicker compared to the norm.

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

      I could be wrong but I believe the boxers are on a background layer, and because of the mapper chip they are frequently swapped out for different "groups" of backgrounds. You can see that 90% of the background layer in the game is just the single repeated tile of the plain ring canvas, so most of the background graphics can be used for the boxers.
      Sometimes a boxer graphic's sequence of a few frames takes up as many tiles as the entire backgrounds of Super Mario Bros including the title screen graphic

    • @binguloid
      @binguloid Рік тому +4

      @@OnslaughtSix actually the opponents are sprites, and mac is a background.
      regarding the original comment, flickering only happens when there are more than 8 sprites on a row, and since the opponent is made of the only sprites on screen, it can be prevented by the artist.

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

      @@OnslaughtSix found it. Little Mac is the background!
      ua-cam.com/video/LhnmXJiPgPw/v-deo.html

  • @pr3st00
    @pr3st00 Рік тому +3

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

      I guess the only way they expected you to know was to publish it in Nintendo Power at some point. :-)

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

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

      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.

  • @matte.309
    @matte.309 Рік тому +1

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

      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.

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

    They're professional boxers, their work is just boxing.

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

    6:35 - Jesus christ i'm so lost lol, but I keeeeeeep watchin

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

    Wow, that's pretty sophisticated for an NES game. I was expecting a bunch of if statements, haha.

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

    Lil Mac has magic boxing shorts. Color changing white to green.

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

    This is way over my head but I gave a like for information

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

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

    cool

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

    The programming layout seems to be a bit different from programming in let's say C, Javascript, Java, Lua or my favorite: BASIC. This programming layout uses tables.

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

    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.

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

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

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

    This is amazing please make a TasBot

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