Jump to content
IGNORED

Pac-Line 2600 (Atari 2600) Development Log


ZeroPage Homebrew

Recommended Posts

Pac-Line 2600 Dev Log

image.thumb.png.0e9bb727bdbf460f34d260cbafb92c0d.png

 

 

For my first Atari 2600 game, I've run across a "simple" but still very fun game called Pac-Line 2600 which is a port of Pac-Line for the Pico-8, which in turn is a port of Paku Paku, to port that I think would suit the console. I'll be using this thread to document my progress and will reveal the game on ZPH (which happened on Mar 29th 2024) when it's ready! I will definitely be reaching out to the community when I run into any issues I need help with. It will be written in assembly and coding will begin after the 6th AHAs.

 

DOWNLOAD FROM PUBLIC THREAD

 

Code Name: "One Liner"

 

Challenges:

  • Asymmetrical Playfield
  • Flicker Code

Known Bugs To Fix:

  • None

To Do:

  • Add AtariVox and PlusCart support for High Score
  • Flicker Code for the Fruit
  • Fruit Bonus Items (Possibly Multicoloured)
  • Two-Player Mode
  • Implement attract screen, possibly with AI player
  • Flash "Fire To Start" message
  • Update sounds, and possibly music, closer to arcade
  • Level Number On Screen
  • PAL Version

 

ChangeLog:

 

Spoiler
  • ✓ Display High Score (20240420)
  • ✓ Implemented saving collision data right after drawing maze due to new ZeroPage Homebrew graphic (20240410)
  • ✓ Updated ZeroPage Homebrew footer graphics with cleaner stripes and black background <- Thanks @Al_Nafuur (20240410)
  • ✓ Updated font graphics for 2, 5, 6 & 9 plus updated the Game Title at top with new font <- Thanks @Thomas Jentzsch (20240410)
  • ✓ If player touched Ghost and Power Up at Same Time, Ghost is Scared instead of Game Over (20240408)
  • ✓ Changed Power Up to the First and Last 5 Dots (20240408)
  • ✓ Updated Various Game Colours (20240408)
  • ✓ Changed score font to match title font (20240408)
  • ✓ Added ZeroPage Homebrew Logo at Bottom (20240408)
  • ✓ Cycle through ghost enemies (Blinky, Pinky, Inky, Clyde) every 8 levels (20240408)
  • ✓ Implement software collision for power pellet which fixes bug directly below (20240408)
  • ✓ [Bug Fixed] If power pellet left last, you automatically advance to the next level (20240408)
  • ✓ [Bug Fixed] Repeated frame of Pac-Man in animation (20240408)
  • ✓ [Bug Fixed] Pac-Man Glides for a few frames when starting off (20240408)
  • ✓ [Bug Fixed] Pac-Man and Ghost face right on Game Over (20240408)
  • ✓ [Bug Fixed] Score currently only goes to 9999 (20240406)
  • ✓ [Bug Fixed] If left most dot is left last, you automatically advance to next level (20240406)
  • ✓ Reorganize Code (20240406)
  • ✓ [Bug Fixed] Eaten ghost sometimes travels the wrong direction, needs to travel to furthest end of the maze (20240403)
  • ✓ Updated Ghost Eye Graphics (20240329)  <- Thanks @vitoco
  • ✓ Improved Score Font (20240328)
  • ✓ Display Score (20240328)
  • ✓ Final Animation of Enemy (20240328)
  • ✓ Implemented Warning Condition (20240328)
  • ✓ More Difficulty With Level Advancement (20240328)
  • ✓ Basic Sound (20240328)
  • ✓ Animate Player and Enemy (20240327)
  • ✓ Corrected Object Placement with Level Advancement (20240326)
  • ✓ Increased Enemy Speed with Level Advancement (20240326)
  • ✓ Score Display Kernel (20240325)
  • ✓ Title Screen (20240325)
  • ✓ Basic Enemy Animation (20240324)
  • ✓ Kernel Cleanup (20240321)
  • ✓ Level Advancement (20240321)
  • ✓ Implement Scoring (20240321)
  • ✓ Fixed Minor Display Issue (20240321)
  • ✓ Implemented Basic Game Start / Game Over * (20240320)
  • ✓ Finalized Player and Enemy Movement (20240320)
  • ✓ Fixed Minor Graphical Elements (20240320)
  • ✓ Randomized Play Elements (20240320)
  • ✓ Enhanced Enemy Collision (20240320)
  • ✓ Enemy Collision (20240318)
  • ✓ Game Over Condition (20240318)
  • ✓ Other Collisions (20240318)
  • ✓ Playfield Modification (20240317)
  • ✓ Collisions (20240314)
  • ✓ Added Ball Item Basics To Kernel (20240313)
  • ✓ Fixed Movement Issue (20240313)
  • ✓ Advanced Enemy Movement (20240312)
  • ✓ Subpixel Player / Enemy Movement (20240311)
  • ✓ Better and Larger Player and Enemy Graphics, Resized Play Area Accordingly (20240310)
  • ✓ Corrected Playfield Colours (20240308)
  • ✓ Full Playfield (20240307)
  • ✓ Clean Up of Kernel (20240303)
  • ✓ Basic Asymmetric Playfield (20240303)
  • ✓ Basic Playfield (20240301)
  • ✓ Basic Enemy Movement (20240301)
  • ✓ Player Movement (20240227)
  • ✓ Player & Enemy Graphics (20240227)
  • ✓ Basic Kernel (20240227)
  • ✓ Basic Pseudocode

 

  • Like 13
Link to comment
Share on other sites

On 2/20/2024 at 1:42 AM, ZeroPage Homebrew said:

Atari 2600 Game: Codename "One Liner"

 

For my first Atari 2600 game, I've run across a "simple" but still very fun game to port that I think would suit the console. 

Sounds interesting!  What is the original One Liner game and on what platform can it be found?  Sorry, I'm not familiar with it.  

Link to comment
Share on other sites

1 minute ago, Living Room Arcade said:

Sounds interesting!  What is the original One Liner game and on what platform can it be found?  Sorry, I'm not familiar with it.  

 

It's the codename for a port of a game that I'm making. I will reveal the game on ZPH when it's in a decent state and talk about which game it's a port of.

 

- James

  • Like 3
Link to comment
Share on other sites

Got some more done, mostly non-cosmetic as there was a lot of cleanup in the Kernel needing to be done. Was able to implement the start of the asymmetric playfield though!

 

20240303 Build:

  • ✓ Clean Up of Kernel (20240303)
  • ✓ Basic Asymmetric Playfield (20240303)

- James

  • Like 4
Link to comment
Share on other sites

On 2/27/2024 at 8:40 PM, ZeroPage Homebrew said:

 

It's the codename for a port of a game that I'm making. I will reveal the game on ZPH when it's in a decent state and talk about which game it's a port of.

 

- James

Are you really trying to fit all this in a 1 scanline kernel?  I didn't think it possible!

Many of the features you are going for are similar to an update to the bB Multi-sprite kernel.  I really want to use the whole playfield,  Poor PF0 is so overlooked in bB yet was often used in original Atari games.

Congrats on you quick progress.  color me impressed.

  • Thanks 1
Link to comment
Share on other sites

4 hours ago, Mike_at_AEI said:

Are you really trying to fit all this in a 1 scanline kernel?  I didn't think it possible!

 

The asymmetrical playfield dictates that I have to make it a 1 scanline kernal but I'll treat the player/enemy as a two line kernel most likely as I don't think I need the graphic fidelity on them. I'll do my best to try to fit as much as I can into the kernel but I'm willing to make some sacrifices if necessary. 🙂

 

4 hours ago, Mike_at_AEI said:

Congrats on you quick progress.  color me impressed.

 

Thank you so much! I'm pretty happy with the progress I've made so far and I hope I can get the rest done just as quick so I can show the first iteration this month on the show!

 

- James

  • Like 4
Link to comment
Share on other sites

Whew, it was a tough day today coding, so much cleanup and optimization.

 

My goal for today was to get the full basic kernel done with an output of a stable 262 lines. It took a lot of fiddling and stepping through the code in Stella but all worth it in the end. The kernels are VERY tight for time already so it's going to be fun adding the character animation in later (and colour if possible). I'm sure I'll be referencing a bunch of example code from other people's projects for reference.

 

Onward and upward! Next on the list is enemy movement, which shouldn't be too bad since it's outside of the kernel and is VERY simplistic in this game. Thank you for all the encouragement everyone! I'm now very confident of making my deadline of the end of the month for the ZPH reveal of the game!

 

- James

 

20240307 Build:

  • ✓ Full Playfield (20240307)
  • Like 3
Link to comment
Share on other sites

10 hours ago, Thomas Jentzsch said:

I suppose you already had a look at some tips and routines (SkipDraw, MaskedDraw, SwitchDraw, FlipDraw...) which allow more or less fast drawing of sprites?

 

I've heard of SkipDraw but not the rest, thank you for letting me know about them! Thanks so much Thomas, I'll check them out!

 

- James

Link to comment
Share on other sites

1 hour ago, Thomas Jentzsch said:

BTW: I suggest using a version control software like GIT. You can create free online repositories e.g. at GitHub or GitLab (private or public). Or just commit locally only.

 

Thank you for the suggestion, I'll look into using that. I thought it was a public thing only so that might work well for me.

 

- James

Link to comment
Share on other sites

I had a few minutes today to retool the graphics in the game to look better and larger! I'm much happier with the overall look of the basics in the game now and I'm ready to move forward with the game logic this coming week. Very looking forward to moving away from the kernel for a bit and into some of the actual gameplay.

 

- James

 

20240310 Build:

  • ✓ Better and Larger Player and Enemy Graphics, Resized Play Area Accordingly
  • Like 3
Link to comment
Share on other sites

I've just implemented subpixel speeds for both player and enemy movements which will allow me to adjust the gameplay for more difficult levels. Tomorrow I should be able to tackle the advanced enemy movements which will almost make it feel like a game, almost!

 

- James

 

20240311 Build:

  • ✓ Subpixel Player / Enemy Movement
  • Like 2
Link to comment
Share on other sites

The enemy movement is now done! Next up is collision between all the objects on the screen and playfield modification. These two things go hand in hand so I suspect this part will be quite challenging and may take a few days.

 

- James

 

20240312 Build:

  • ✓ Advanced Enemy Movement
  • Like 1
Link to comment
Share on other sites

Didn't have enough time today to dive into collisions so I fixed up some player movement issues I noticed the other day. I also added in the beginnings of a game element that uses the ball and amazingly enough there's still time in the kernel for it. I hope there's enough time in the kernel for some simple colour changes later, we'll see!!

 

- James

 

20240313 Build:

  • ✓ Added Ball Item Basics To Kernel
  • ✓ Fixed Movement Issue
Link to comment
Share on other sites

The basics of collision are done! I was able to use hardware collisions and it worked out quite elegantly so it should hold for the full game. If there's more precision needed I may have to change one collision to software but that's not a huge issue. The consequences of the collisions are not done because I haven't implemented game over or score yet but it's set up and ready for that.

 

- James

 

20240314 Build:

  • ✓ Collisions
  • Like 4
Link to comment
Share on other sites

  • Recently Browsing   0 members

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