Jump to content

Popeye 7800


Recommended Posts

1796636412_3rdAnnualAtariHomebrewAwards(2020)-WinningLaurels-Atari7800BestWIP.jpg.fe7c789b8f6c18290a0e21ee793cbb9c.jpg        1727292773_Atari7800BestHomebrew(Port).jpg.ac519844e0e5f8abe562158c5616be66.jpg   Many thanks to all who contributed (see credits below) and voted.




The final version includes a Novice, Arcade, and Expert difficulty.


Novice - Rev F

Popeye Faster; Spinach resets after losing a life; Extra @ 26,500



Comparable to arcade difficulty; extra life at 40,000



Brutus is faster and more aggressive; Bernard is craftier; Items fall really fast









Thanks to all who voted Popeye as 2020's "Best Homebrew Atari 7800 (WIP)".

1540347286_BestWIP2020_(27).thumb.jpg.98bfc4525cc2031568cb42b21d687802.jpg BestWIP_Popeye_2020.thumb.png.93f5c616c24d30ae5c5af8933bdd5bf2.png


A SPECIAL game demo is available on the JS7800 emulator.

This demo includes Novice & Expert. Popeye gets 2 lives, but he can earn a 3rd. The game ends after the ship, so POINT PRESSING IS A MUST!


The game is 1 or 2 player alternating.

image.thumb.png.c1d1fad4fdecd8fcb1a086e01c611024.png  image.thumb.png.3a1f55ca6a702d0e04afcfdcf9eb865d.png


image.thumb.png.4e8bbb22c67c1801846e1a9122ccbd54.png  image.thumb.png.4a14dda82fb3bb14eec4d34e0cc19449.png


image.thumb.png.bd535dae585a20f631ae58bd3c9726fd.png  image.thumb.png.a30342affd8b21e9c0922c4ea3584d92.png

Red background can be removed in the full version: right, down, right, up, up down


image.thumb.png.be272ed71a808615e1eba1a03f9cb03c.png  image.thumb.png.1490e36d72ef13bfc8fa2b65b56c0f3a.png 


image.thumb.png.8f4af457460916cb5f443de483d59d87.png  image.thumb.png.189d6ff14f36b29c4d1e1fdec75fbac5.png




Below is the DEMO version (Most recent to oldest).

Players can play 1 or 2 player. Players now get 2 lives and can earn a 3rd. Players cannot unlock the cheat mode in the demo. Arcade mode is the only level available. Novice and Expert are exclusive to the final version and the version on the JS7800 emulator.


3/3/2021 - Demo of version 2.40!

For Concerto compatibility, I have to run firmware .95.

  1. Added High Score Cartridge header for use on 7800GD
  2. No slowdown
  3. Better collision detection
  4. Brutus throws 4 bottles, regardless of whether Popeye leaves his line of sight.
  5. Revision F is now pink, like the arcade. It can still be turned off with the code.
  6. Unlocked Novice and Expert levels
  7. Popeye now has 3 lives for all demo difficulty levels. (Full version offers 5 lives on Novice.)
  8. Still limited to 3 levels of play.
  9. Points awarded for punching bottles on the See-Saw level.




3/3/2021 - RC3.5

Concerto still has issues at times. Dragonfly now seems stable. These issues do not happen on the final cart media. The mcpdev is also very stable. There are some minor cleanups. Fixed the color on the high score erase screen. This is it, unless some bugs come up that need attention.


Popeye(RC3.5_Demo_NTSC-PAL).a78   Popeye(RC3.5_Demo_BUP).a78


2/25/2021 - RC3.4

Fine tuning. Brutus now jumps at an angle, like the arcade. It's not quite as drastic.


Popeye(RC3.4_Demo).a78  Popeye(RC3.4_Demo-BUP).a78


2/22/2021 - RC3.3

Tile change on first level. Was able to add a rail to the ship's crow's nest, during the intro and level clear.

I also found out that Olive doesn't scold Popeye if a Letter falls into the water, on the ship level. I have corrected that inconsistency. I assume it doesn't make sense, since she's captured in this level.


Popeye(RC3.3_Demo_NTSC-PAL).a78  Popeye(RC3.3_Demo_BUP).a78


2/21/2021 - RC3.2

More minor graphical changes. Now the title Popeye head has a brown pipe, like the arcade. Tile tweaks on the first level. Also reversed the ship mast shading, to match the arcade.


Popeye(RC3.2Demo_NTSC-PAL).a78  Popeye(RC3.2Demo_BUP).a78


2/21/2021 - RC3.1

Minor update. Has a few tile changes


Popeye(RC3.1_Demo).a78   Popeye(RC3.1_Demo_BUP).a78


2/20/2021 - RC3.0

This version has a lot more changes than a "release candidate" should have. From this point out, I would like to stick to bug-fixes.


  1. Fixed a high score issue, which was introduced by adding the High Score Clear. I noticed this while watching the @ZeroPage Homebrew stream. Each difficulty should line up properly now (Novice, Arcade, and Expert). No high score device should read "Top 5 Chart". That is the header for the arcade table. High Score Clear is accessed by holding RESET and pressing both buttons on the first stick!
  2. Also seen on ZPH: Brutus doesn't get stuck in the bottom left corner when Popeye has the spinach. (He gets stuck in the bottom left corner of the Notes board, but that is by design. That happens in the arcade.)
  3. @Defender_2600 had color suggestions: Popeye's drawn with a different hue of blue. The ship has a more midnight blue background, and the floors are more golden than yellow. (The arcade is a dark blue-ish purple when I play on an actual arcade machine. It seems similar in MAME.)
  4. Defender2600 had level suggestions: The Notes screen tower is now slightly thinner. The floor that leads to the see saw no longer extends to the end of the building. This required a lot of work in adjusting the logic. (See below) Fixed some tiles on the ship level.
  5. More color adjustments. REV F ROM set (Novice is based off an easier Popeye arcade ROM) has more of a burgundy background, on the Hearts level. The arcade REV F has a pink-ish background. I think this works well. The old "brown" was mistaken for green. Popeye now turns red, instead of pink, when he eats the spinach.
  6. Logic adjustments with see saw logic: This was about 8-10 hours consuming. I had some logic in place. Moving the floor exposed a couple holes in that logic, given a very specific alignment of the stars.  In making the level adjustment, I got to recreate the 1%. It was still extremely hard to recreate. If Brutus kicked into pursuit mode, right as Popeye jumped onto the see saw, Brutus could still jump on top of Popeye. I believe I worked this out. I can't seem to get it to happen again.
  7. Tune adjustment: If the last item gets collected from the water, the game does not revert to the level tune.
  8. Last Note & Last Letter would sometimes still be present. I think I took care of that issue.
  9. Fixed some garbage that would flash after dying on the Notes stage.


Popeye(RC3_Demo_NTSC-PAL).a78  Popeye(RC3_Demo_BUP).a78


2/9/2021 - RC2.9

Many fixes and updates. I am concerned that "Arcade" difficulty feels a little easier to me. That might encourage more people to play the arcade difficulty. I do want it to feel like the arcade challenge though.

I can run this for hours on my Dragonfly and versa-cart, without any issues. It does crash at times on Concerto. It seems to be when idling in attract mode.


1. Fixed remaining issues with Brutus's pursuit music.

2. Colors and spinach timing are different for NTSC and PAL systems.

3. Reduced slowdown by limiting collision detection-per-frame.

4. Better proportioned Bucket. @KevinMos3

5. Adjusted the better proportioned bucket to fit Brutus's head

6. Lessened the use of flicker in some areas, due to the overhead saved in adjusting the collision.

7. Minor bug fix: Popeye disappears if collecting the last note when starting up or down the ladder.

8. Updated the Windows on the Notes Level.

9. Found duplicate tiles, and used the extras for "Thru" posts on level 2.

10. Last player 1 and player 2 scores display in blue during demo.

11. Fine-tuned Popeye's punch. **

12. Popeye walks off the screen when wrapping around on the levels. **

13. Brutus doesn't gain super speed when Popeye gets the spinach.

14. Brutus imitates the quirky behavior of the arcade when he's stuck in the corner, by the see saw. (When Popeye has spinach)

15. Brutus logic tweaks.

16. Fixed some artifacting when returning from demo play.


         Popeye(RC2.9_Demo-NTSC-PAL).a78  Popeye(RC2.9_Demo-BUP).a78


Most will not notice this change. Eliminates a flash of garbage after Popeye dies on the notes and ship levels.

Popeye(RC2.9a_Demo_NTSC-PAL)s.a78  Popeye(RC2.9a_Demo_BUP).a78


2/1/2021 - RC2.8

Update. Only need one version for A7800, Concerto, and Dragonfly. BUP has a special version. I can play this version all day on my Dragonfly or versa-cart, and it doesn't crash. It plays pretty long on the Concerto, especially once things are warmed up. There's nothing I can do about that at this time. That was the inspiration to clean much of the back code up.

  1. A LOT of behind-the-scenes cleanup & some polish
  2. The bottles rotate slower - @tep392
  3. Olive doesn't constantly walk on the Notes and Ship. (This affects game play in other ways that I won't disclose.)
  4. When Brutus gets his burst of energy, the bottle throwing music now plays, like the arcade.
  5. Popeye's house now has window panes. I can't believe I missed that.
  6. Popeye's now falls below the water line when he dies. On the arcade, Popeye reappears at the waterline, following the splash. I made Popeye bob back to the top. I like arcade purity, but I think they did it that way for sprite overlap issues with the water.
  7. The demo play scene is now more versatile. Popeye gets scolded often, like the arcade.
  8. Fixed rare combination that would silence music on the Notes level.


Popeye(RC-2.8_Demo).a78  Popeye(RC-2.8_Demo-BUP).a78  As always, play the point-pressing version on JS7800!


1/26/2021 - RC2.7

The levels are now more in-line with the arcade aspect. Many tiles were re-drawn and repurposed. This was a 14-hour day (with hour break) and a few hours the following evening. The characters now know the levels, the attract modes are up to date, and everything seems fine. Let me know if there are any issues.

  1. @Defender_2600 suggested that I address the issue with the crammed levels. I didn't think I'd have enough tiles, but it worked out in the end. I think it was worth the effort. He also recommended toning down the yellow a little.
    1. Redrew the tiles
    2. Reprogrammed the tile graphics to line up with the new tile indexes (Hearts in the house, Whimpy and the see saw, etc.)
    3. Reset the coordinates for the staircases
    4. Reworked the self-play intro
  2. Cleaned up some sprite plotting.
  3. Adjusted some areas where the text colors were not flipping correctly.


Popeye(RC2.7_Demo).a78  Popeye(RC2.7_Demo-BUP).a78  Popeye(RC2.7_Demo-Concerto).a78


1/23/2021 - RC 2.6

This version has major tile re-work. I started cleaning up the first level. This simulates the lower-res look of the arcade. In doing so, this cleans things up. Bricks are no longer 1px apart vertically, the stairs have 2px underneath. The floors are thicker, including the bottom level. I am unable to color the bottom blue, but I have a water shadow of sorts, to keep in the arcade spirit.


On the logic side, I adjusted Brutus's randomness. He is less likely to jump down, based on difficulty, round, and number of items collected. This may not be obvious, because he will still jump down a decent amount of the time.


Changing logic meant adjusting the demo play. The demo play now starts with an example of a heart falling into the water.


Popeye(Beta2.6_Demo).a78  Popeye(Beta2.6_Demo-BUP).a78  Popeye(Beta2.6_Demo-Concerto).a78


1/16/2025 - RC 2.5

I wasn't going to do this, due to the amount of work, but I had to.image.thumb.png.07c7d539e611645455b0cf6d379e1040.png

  1. New upper playfield on Level 1. The tileset with the grass are now one row lower, allowing more arcade-accuracy. 
    1. Transferred tiles from one tileset to another, which caused an offset in tiles
    2. re-aligned plotted tiles (hearts in Popeye's house)
  2. Olive will now center herself after throwing the last heart. This keeps the large heart from being drawn off-screen.
  3. Fixed the staircase "bricks" to be blockier, like the arcade
  4. Revision F has a plum background, to match the arcade ROMs
  5. Flower doesn't disappear when level 1 is cleared


Popeye(RC2.5_Demo).a78  Popeye(RC2.5_Demo-BUP).a78  Popeye(RC2.5_Demo-Concerto).a78 


1/14/2021 - RC 2.4

  1. Got rid of random off-pitch item collection noise, @playsoft
    1. This makes the game more stable using the Concerto. The sound seems to behave similarly to other games I tested. This has gotten rid of complete songs playing out of tune or missing parts.
  2. Updated sprites and palettes
  3. Title music plays every other loop; Atari Today only plays when the game is turned on.
  4. Olive doesn't walk in space after scolding Popeye
  5. Popeye's footsteps are closer to the arcade pattern.
  6. Overhaul of Popeye's ladder climb
  7. Fix some reset behavior


The JS7800 Demo will also be updated, which allows Novice & Expert to be played.


Popeye(RC2.4_Demo).a78  Popeye(RC2.4_Demo_Bup).a78  Popeye(RC2.4_Demo-Concerto).a78


1/2/2021 - Beta 2.9

  1. Two-Player with shared joystick option. I figure this will be helpful for people with only one joystick. Sometimes I just like to play a two player game by myself. This should also help @ZeroPage Homebrew too ;).
  2. New death sound by @Synthpopalooza
  3. Updated the credits page
  4. More Popeye sprite tweaks
  5. Updated self-play sequence
  6. Brutus is smarter when Popeye has the spinach.
  7. Olive screams "HELP!" on the ship level.
  8. "Popeye Catch!" call out is present on the Notes level now. (Yes, the gray does show through the letters on the arcade too!)
  9. If the punch button is pressed during an intro or pause before a level starts, Popeye will punch when the level begins. This is a personal detail I wanted to include from the arcade. I am out of space in the hearts bank, so that level doesn't have a pause after the intro. No room.
  10. Shifted some code for less bank switching on the hearts level.
  11. Brutus is back to throwing a minimum of 2 bottles, instead of 4. This reduces slowdown, which is a better experience. All systems of the day made exceptions. He will still throw up to 4, if Popeye is in his line of site.


Popeye(Beta2.9_Demo).a78  Popeye(Beta2.9_Demo-BUP).a78  Popeye(Beta2.9_Demo-Concerto).a78


12/25/2020 - Beta 2.8 - Many Changes. Merry Christmas/Happy Holidays

  1. Thanks to @tep392, I have confirmation that POKEY sound on actual hardware matches emulation. Just in time for a late Christmas release! 
    1. Sound will still cut in and out on the Concerto, but some sound is better than none!
  2. Since it's Christmas, I have changed the "DEMO" version to include 2 lives (an extra life can be earned). The game now ends after clearing the SHIP.
  3. Updated sprites and colors
    1. Brutus has different color outfits to match each level
    2. Other various changes
  4. *** Brutus now throws all 4 bottles, like the arcade. I am not sure that I want to keep this, but I wanted to try it for a version.
    1. In a previous version, I added code to allow Brutus to stop throwing bottles after the second one, if Popeye leaves his line of sight. This helps eliminate some minor slow down. Also, there are certain areas where Brutus and the bottles will cause sprite overload. This is found on the Notes level. Should I sacrifice arcade pureness for this to eliminate slowdown and what ends up being flicker? I might go back in the next version. Will that be the final version?
  5. Updates some of the self-playing demo routines.
  6. Updated the credits. That still needs tweaked and cleaned up, but I wanted to get it out there.

Popeye(Beta2.8_Demo).a78  Popeye(Beta2.8_Demo_BUP).a78  Popeye(Beta2.8_Demo-Concerto).a78  Popeye(Beta2.8_Demo).bin


12/8/2020 - Beta 2.7f - Fixes and clean-up.

Popeye(Beta2.7f_Demo).a78  Popeye(Beta2.7f_Demo_BUP).a78  Popeye(Beta2.7f_Demo-Concerto).a78  Popeye(Beta2.7f_Demo).bin


11/27-2020 - Beta 2.7

Popeye(Beta2.7_Demo).a78    Popeye(Beta2.7_Demo).bin


11/24/2020 - Beta 2.6

  1. Updated high score routines

    1. No High Score device -  "Todays Top 5" will be stored with initials until power off.

    2. High Score device - "Novice Top 5", "Arcade Top 5", and "Expert Top 5" saved permanently.

  2. Brutus will wait for Popeye to clear the see saw, like the arcade. He did before in most cases. I fixed this when Brutus is in pursuit mode.

  3. Fixed artifacting on Title screen, found when level was selected in 2.5b

Popeye(Beta2.6_Demo).a78    Popeye(Beta2.6_Demo).bin


11/23/2020 -  Beta 2.5b - Update Popeye's fall (slower), fix bottle collision at far left, align some title elements.


Popeye(Beta2.5b_Demo_BUP).a78(BUP disables high score saving, to work with BupSystem emulator)



11/23/2020 - Beta 2.5a - Fix collision issues with items (still broken on some far-left bottles); Set Popeye stance after punch; slowed notes on higher levels

Popeye(Beta2.5a_Demo).a78    Popeye(Beta2.5a_Demo).bin    Popeye(Beta2.5a_Demo_Bup).a78


11/09/2020 - Original public demo

Popeye(Beta2.1_Demo).a78 Popeye(Beta2.7f_Demo).bin



Older revision screenshots


image.png  image.png


image.png  image.png


image.png  image.png


image.png  image.png



  • Like 37
  • Thanks 1
Link to comment
Share on other sites

Hi Darryl

works very well and plays very well.....until now,the best Popeye version of all game systems.

And plays even better than the Mame arcade version.....this game is a must.

I tried it on real hardware....Concerto has some

glitches...but my special multicart,a friend made 

for me works perfect....


greetings Walter

  • Like 2
Link to comment
Share on other sites

41 minutes ago, gambler172 said:

Can i play this on my Cuttle cart 2?

What bankswitching do i need?


Sorry that I do not know enough about that cart. I only know it's 144k bankswitching. I know there was issue with one cart. I do not know which one. Plays fine on some though. I wish I had a cart to know. :P

Link to comment
Share on other sites

1 hour ago, gambler172 said:

Can i play this on my Cuttle cart 2?

What bankswitching do i need?

Using the latest cc2 banking files it should be just a matter of stripping the a78 header to make a bin, and using the CC2 "7144P" type. Using that, the game plays just fine, but I can't seem to get the pokey to work, but I don't think this CC2 banking type has had a lot of testing.

  • Like 1
Link to comment
Share on other sites

@darryl1970 You have done outstanding!  I'm really proud of you for both the spectacular job you did making this as well as bringing an incredible arcade port to the Atari 7800!


Popeye was always at the top of my list for 7800 arcade conversions.  The graphics really push the limit of the 7800's capabilities too; it does look like the arcade version.  Dare I say this looks even better than the tiny character sprites the 1983 NES port used?

  • Like 5
Link to comment
Share on other sites

Great work!


I would just like to share a couple of thoughts about the Level Layout, I was thinking that the green platform of the first level seems too thin, just my opinion but I would suggest to update it with two pixels high.






I also noticed that, in the first and second level, some steps of the stairs are disproportionate (highlighted in white in the following image).






Last detail if it is of interest, in the first and second level of the arcade version, all the steps of the stairs have the same dimensions (unlike the current 7800 version). Thanks for the attention.



  • Like 6
Link to comment
Share on other sites

8 hours ago, Defender_2600 said:

Great work!


I would just like to share a couple of thoughts about the Level Layout, I was thinking that the green platform of the first level seems too thin, just my opinion but I would suggest to update it with two pixels high.






I also noticed that, in the first and second level, some steps of the stairs are disproportionate (highlighted in white in the following image).






Last detail if it is of interest, in the first and second level of the arcade version, all the steps of the stairs have the same dimensions (unlike the current 7800 version). Thanks for the attention.



Thanks. I agree the two-pixels would probably look better.


I forgot to go back through and double-check the steps. I quickly changed them from the original version size and moved on. I meant to revisit this, and I have been too busy with game mechanics. Thanks for the reminder, because it had slipped my mind.

  • Like 8
Link to comment
Share on other sites

I worked a little on the tiles, layout, and Sweet Pea yesterday.


Adding tiles actually threw off the animation for the hearts in Popeye's house, as well as throwing off the plot of Whimpy. I had to spend a lot of time to get that back in sync. I added tables to help if I ever need to adjust in the future.


I added the pixel thickness to the grass under Olive. I adjusted Olive and Brutus accordingly. That took more config than 1 pixel should have.


I tried adding the foliage around the houses, which is a lighter green in the arcade version.


I redrew Sweet Pea. It bothered me that I couldn't get the balloon bigger. Since he's a baby, I figured I could whittle him down a little. I didn't want to loose the personality in his face though. I think I found a decent balance. In the end, I was able to make the balloon a little larger.


image.thumb.png.5eb689fc3c13175af00939d402d2faa6.png  image.thumb.png.26110de8597f851e80cfff4e6d3392cb.png


I also renamed "DEBUG MODE" to "CHEAT MODE", which is access from a joystick combination. (Not available in the demo version)



This also includes minor changes in displaying the round before a level starts.






  • Like 9
  • Thanks 4
Link to comment
Share on other sites

Totally awesome work!!


Has anyone gotten this to work using the CC2?


I have tried all available banking schemes that support 144K ROMs. The AA intro plays, the Popeye game select screen is presented, all POKEY music plays, but when I start a game, it cuts right over to “Game Over”. 

I’m guessing there’s something about the bank switching that is causing this. 

  • Like 1
Link to comment
Share on other sites

The Concerto firmware that is out there reportedly has glitches with this game but I have them fixed on my end and will release a firmware update soon so current Concerto owners can play.


Also, I got the immediate game over when starting a game too. It isn't a consistent bug, though. When I waited for the demo mode to play, the game started normally, then in subsequent reboots it still worked without having to wait for the demo mode.

  • Like 3
Link to comment
Share on other sites

9 hours ago, RevEng said:

Looking in the a7800 debugger, on game start I see a bunch of spurious writes to E04D-E056, and then 624D-6256.


Best guess by looking at the assembly, is that a Y coordinate that's off-screen is being used with plotchars or plotmap.

The wayward writes were probably the cause of the glitches in Concerto. The problem was that some areas of memory weren’t protected from writes. Once I disabled writes to all cartridge space it worked. 

  • Like 3
Link to comment
Share on other sites

This sounds great.


Now I just need a Concerto cartridge, or something so, I can enjoy my creation on real hardware again. ?

My understanding was that nothing is currently finalized. Am I missing something?


If anybody has an unwanted one lying around, please hit me up. Friday's my birthday, so I think I can splurge!



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.

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.

  • Recently Browsing   0 members

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