Jump to content
IGNORED

Why is Popeye all white?


highinfidelity

Recommended Posts

From some time on I am wondering why the Popeye sprite in Colecovision's port is all white.

 

I am sure there must be some technical reason, but it's really weird if one compares it to Brutus, which is as well nicely animated but shows full colours instead.

 

Any programmer can give perhaps an answer?

Link to comment
Share on other sites

From some time on I am wondering why the Popeye sprite in Colecovision's port is all white.

 

I am sure there must be some technical reason, but it's really weird if one compares it to Brutus, which is as well nicely animated but shows full colours instead.

 

Any programmer can give perhaps an answer?

 

Well Coleco's sprites are single color. You have to do multiple sprites on top each other to get multicolor sprites.

 

My guess is they didn't want to have to constantly flicker popeye if theres too much stuff going on. Hes what you're controlling. Flickering him would be bad mojo.

Link to comment
Share on other sites

What about Mario in DK , He has more than one colour ?

 

Yes, but very little in the way of sprite animation variation and size in comparison. Mario is like half the size of Popeye.

 

donkey_kong.gif

 

 

popeye.png

 

 

And you're already using multicolors on the in motion Bluto, Oliver, and then the backgrounds as well.

Link to comment
Share on other sites

What about Mario in DK , He has more than one colour ?

 

Yes, but very little in the way of sprite animation variation and size in comparison. Mario is like half the size of Popeye.

 

donkey_kong.gif

 

 

popeye.png

 

 

And you're already using multicolors on the in motion Bluto, Oliver, and then the backgrounds as well.

 

True , I think its Olive-oil thou :D

 

Are they your own screen shots ?

Edited by Kakaboy
Link to comment
Share on other sites

My guess is they didn't want to have to constantly flicker popeye if theres too much stuff going on. Hes what you're controlling. Flickering him would be bad mojo.

Thank you, very interesting replies so far.

 

But, on the other hand, as it's HIM you're controlling, it's the sprite you look at much more than anything else. What if they made Brutus and Olive a bit "thinnier" in colour, but made Popeye more colourful? Basically only the pink of the skin is missing...

Edited by highinfidelity
Link to comment
Share on other sites

Well, the sprites can only be 1 color, so there is no real "thinning" Its either multicolor, or it isn't.

 

My guess is, Popeye is big, and has to check collisions with the hearts, AND the other stuff... Bluto doesn't. Maybe it was too much CPU use to do two sprite checks instead of 1 for popeye. I don't know. Im just guessing.

 

 

My preferred answer is "They are lazy". But there is probably a better reason. I hope

Link to comment
Share on other sites

From some time on I am wondering why the Popeye sprite in Colecovision's port is all white.

 

I am sure there must be some technical reason, but it's really weird if one compares it to Brutus, which is as well nicely animated but shows full colours instead.

 

Any programmer can give perhaps an answer?

 

The answer:

 

Poor 2600-Popeye was trapped in a ColecoVision-cartridge...

Link to comment
Share on other sites

The colecovision can only display 4 (one color) sprite on the same row.

 

If you align Popeye (1 sprite) , brutus (2 sprites) and a heart (1 sprite) we are already at 4.

If you use 2 sprites for popeye to make it multicolor , you will have to flicker (like for mario in DK) . I think they wanted a avoid that flicker.

 

The fact they choose to make Popeye single color and not brutus , i think is simply due to the fact that Brutus have a beard.

To be identifiable as "brutus" you have to put a the beard. So no real choice you have to use 2 colors. (or your beard will be transparent..).

 

(but i didn't play popeye recently, so may be i'm wrong in my sprites count. May be they use 4 sprites for popeye (2 by row to make it larger).

Edited by youki
Link to comment
Share on other sites

From some time on I am wondering why the Popeye sprite in Colecovision's port is all white.

 

I am sure there must be some technical reason, but it's really weird if one compares it to Brutus, which is as well nicely animated but shows full colours instead.

 

Any programmer can give perhaps an answer?

 

Simple explanation...he's the hero, he dresses in white...

Link to comment
Share on other sites

What about Mario in DK , He has more than one colour ?

 

Yes, but very little in the way of sprite animation variation and size in comparison. Mario is like half the size of Popeye.

 

And you're already using multicolors on the in motion Bluto, Oliver, and then the backgrounds as well.

So we finally have an answer to that age old question... SIZE DOES MATTER! :D

 

Don't forget also that when the Sea Hag appears on the sides of the screen and starts throwing bottles at Popeye, that there already is sprite flickering. If Popeye was made up of multiple sprites to give us a better representation of him, the sprite flickering would have been unbearable at a time in the game when your timing has to be spot on... when you have to punch the flying bottles.

Link to comment
Share on other sites

I have to confess, I haven't played this on the CV.

 

I used to get killed so damn fast at the Arcade, I think it made me leery to play the CV version.

 

I loved the Popeye cartoons as a boy, so back in the 80's when this showed up in the arcades I had to play it.

Link to comment
Share on other sites

I have to confess, I haven't played this on the CV.

 

I used to get killed so damn fast at the Arcade, I think it made me leery to play the CV version.

 

I loved the Popeye cartoons as a boy, so back in the 80's when this showed up in the arcades I had to play it.

 

Damn great game on CV back in the 80s

 

It's alot easier than the arcade version (at lower difficulties obviously) .... but you can always start at the first level difficulty and progress when you get better at it

 

Truly a game you should try, great conversion

Link to comment
Share on other sites

It's really down to the decisions that the programmer makes.

 

Here's Popeye on the TI-99/4A - same video chip. Popeye and Bluto are both two colors (three if you count the shoes). Flicker is very minimal, some objects are drawn on the background instead of using sprites. Even so, hearts, Popeye, Olive, and Bluto are sprites. Spinach, the barrel, the witch and bottles are background graphics.

 

post-12959-1295561339_thumb.png

Link to comment
Share on other sites

The Colecovision can only display 4 single color sprites in a row. Popeye's skin color had to be dropped, but it's close to the color white. The sprite size is 16x16, even the heart is 16x16.

 

Flickering is processor intensive since it has to shuffle the sprite since sprite ID 0-3 sprite won't get dropped. However, Sprite ID 4-31 will get drop since they get the least priority. So the developer would have to change sprites ID from sprite 0 to 31 every other frame, then sprite ID 1 to 30 and so on. This will get the flickering effect, but the sprite movement speed will suffer. Example games with flickering, Mr.Do, Buck Roger, and Burgertime. I notice Game Gear games don't use sprite flickering routine often. NES got lucky since they can change the sprite over/under property every frame without problem.

Link to comment
Share on other sites

The Colecovision can only display 4 single color sprites in a row. Popeye's skin color had to be dropped, but it's close to the color white. The sprite size is 16x16, even the heart is 16x16.

 

The TI has the exact same limitation - it is the same video processor. I just showed a picture of that which shows that the 4 sprite per line limitation does not prevent multiple colors on Popeye and Bluto. Popeye is all white on the Coleco because that was the decision made by the developer of that version.

 

Flickering is processor intensive since it has to shuffle the sprite since sprite ID 0-3 sprite won't get dropped. However, Sprite ID 4-31 will get drop since they get the least priority. So the developer would have to change sprites ID from sprite 0 to 31 every other frame, then sprite ID 1 to 30 and so on.

 

The simplest way to get reasonable flickering on the Coleco IMO, and the method I used in Mario Bros and Super Space Acer, is simply to mirror the sprite attribute table in RAM, and to rotate it each frame when you copy it up to VRAM. With a maximum size of 128 bytes, copying during vblank doesn't take too much time, and by changing the index you start copying from, you can get rotation for free. You can skip 4 sprites each frame (rather than 1), meaning the absolute worst case takes 8 frames to cycle through all sprites. If you don't need them all, you can do better (Mario only uses 16 sprites so the worst case is 1 in 4 frames). Since the sprite table is completely re-written every frame during vblank, there's no visible change on the screen, and since you have a copy of the sprite table in CPU RAM, there's no performance penalty for accessing it during the game logic, you can just update the table and let the NMI copy it up to VRAM for you each frame.

 

This is not very processor intensive, since it's just writing one VDP address then two loops to copy a total of 128 bytes, plus updating one counter to remember the start point.

  • Like 1
Link to comment
Share on other sites

A likely reason is that, in those days, Parker Bros. were producing games in many formats. This would force them to cut corners and be hurried.

 

It's interesting to compare the looks of the earlier games, like Popeye, Q*Bert, and Frogger, to games like Mr. Do!'s Castle, Tutankham, and Q*Bert's Qubes.

Link to comment
Share on other sites

A likely reason is that, in those days, Parker Bros. were producing games in many formats. This would force them to cut corners and be hurried.

 

It's interesting to compare the looks of the earlier games, like Popeye, Q*Bert, and Frogger, to games like Mr. Do!'s Castle, Tutankham, and Q*Bert's Qubes.

The games were outsourced to different small companies in most instances so that would explain the differences in ports from one system to another (as well as the actual system hardware) and even Coleco developed Q*bert for Parker Brothers.

 

Check out this link for some very interesting tidbits about small development firms that played a large role in the programming of games on the CV and even ADAM:

 

http://gdri.smspower.org/wiki/index.php/Special:Search?search=ColecoVision&fulltext=Search

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...