Ah yes, Kool-Aid Man. On the intro screen, he bursts through a brick wall—and if you’re going to make a game about Kool-Aid Man, that’s mandatory.

If Kool-Aid Man doesn’t crash through something at the start, is it even a Kool-Aid Man game? (No. It’s not.)

Now the goal here is simple: protect the precious Kool-Aid from what I can only describe as sentient bombs with straws. They’re called Thirsties, which sounds like the name of a failed emo band, but whatever. These little creeps try to slurp up all your Kool-Aid—which is weird, because I thought drinking the Kool-Aid was the entire point of Kool-Aid.

Anyway, you’ve got to wait until they actually start drinking before you slam into them. Do it too early and nothing happens. Wait too long and they tap you first, sending you careening across the screen like a sentient bowling ball. Bonus tip: don’t touch the walls either, because apparently the Kool-Aid Man is so full of juice that the slightest touch make him bounce.

People like to blame games like this for the Great Video Game Crash. But I say no way. This game has charm. It’s got bounce (literally). It’s got bright colors. It’s got Kool-Aid Man yelling “OH YEAH!” like he just snorted a line of Pixy Stix. Okay, he doesn’t literally do this, but in my head canon, he does.

Sure, this is advertising. But so was Cool Spot for the SEGA Genesis, and most people agree that game was pretty darn good too. So cut Kool-Aid Man some slack. He may be a glass-bodied corporate shill, but by god, he’s our glass-bodied corporate shill.

Oddly, this was made by Mattel Electronics for their M Network imprint, which they used for systems that weren’t published for Intellivision. In this case, Kool-Aid Man was an Atari 2600. And I don’t understand why this game wasn’t available for Mattel’s own console. Was Kool-Aid Man too cool for those dweebs who played Intellivision?

We may never know. But one thing’s for sure: Kool-Aid Man definitely belonged on the Atari.

  • FiddlersViridian @sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 天前

    Interesting! I’ve never heard of that before, and I love this sort of thing. Do you have any more info about it, or maybe an Atariage thread with more details?

    I did a quick search and found a couple references to a problem with it on the 2600 Jr when the difficulty switch is set to A. Is that it?

    • Redkey@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 小时前

      I’ve been trying to research the various glitches and variations between versions because I’m working on something that uses some undocumented features and precise timing. Unfortunately, I don’t have one good link that explains it well.

      The issue stems from how player objects (the 2600 equivalent to sprites) are placed horizontally. For good and interesting reasons which are also technically involved and complicated, programmers can’t just send an X value to the graphics chip. Instead there’s a two-step process. First, the program sends a signal to the graphics chip when the TV raster is at approximately the desired horizontal position on the screen. Then, because it’s often not possible to nail the timing of that signal to the exact pixel position, the graphics chip has a facility to “jog” the various graphical objects left or right by a very small amount at a time.

      According to the official programmers’ documentation, this final “jog” should only be done at one specific time during each video scanline. If we only do it this way, it works correctly on pretty much every version of the console. However, doing it “correctly” also introduces a short black line at the left side of that scanline. If we instead send the “jog” signal at certain other times, no black line appears. Additionally, the exact distances moved change depending on when we send the signal, which can be worked around or are sometimes even beneficial.

      Kool-Aid Man uses these undocumented “jog” timings, as several games did. But it displays a score counter at the top of the screen by using the player objects placed very close together. It seems that the console versions in question (later 2600 Juniors and some 7800s) are more sensitive to the timing being used, as you can sometimes see the parts of the score flicking left or right by one pixel.

      The Atari 2600 also has a hardware collision detection system, which reports when any two moving screen objects overlap with each other or the background. Once a collision occurs, the relevant flag will stay set until the program clears it. Kool-Aid Man uses this system to detect when the player character touches enemies. But the program only clears the collision flags once, at the bottom of each frame, and the same player objects are used to draw the score. So when the two parts of the score flicker into each other, it registers as a collision between player objects, which the game interprets as a collision between Kool-Aid Man and a Thirsty.

      As you mentioned, I’ve read that setting the console switches a certain way can prevent this issue, but I’m not sure why. My guess is that setting some switches one way rather than another causes a conditional branch instruction that checks the switches to branch rather than fall through, which takes one extra instruction cycle (or vice versa), which is then enough to stabilize the score display and stop the parts from colliding.