+ZeroPage Homebrew Posted February 20 Share Posted February 20 Pac-Line 2600 Dev Log 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 13 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/ Share on other sites More sharing options...
+ZeroPage Homebrew Posted February 27 Author Share Posted February 27 I've started the assembly coding of the game and now have a stable picture. Next I will be working on player character movement bounded by the area of play and a first pass on the look of the player and enemy characters. IT'S HAPPENING!! 😉 - James 9 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5419564 Share on other sites More sharing options...
+ZeroPage Homebrew Posted February 28 Author Share Posted February 28 20240227 Build: ✓ Basic character graphics and colours for player & enemy ✓ Movement for player ✓ Basic Kernel - James 6 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5419608 Share on other sites More sharing options...
+Living Room Arcade Posted February 28 Share Posted February 28 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 https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5419620 Share on other sites More sharing options...
+ZeroPage Homebrew Posted February 28 Author Share Posted February 28 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 3 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5419623 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 1 Author Share Posted March 1 20240301 Build: ✓ Basic Playfield - Non asymmetrical playfield implemented ✓ Basic Enemy Movement - Very simple movement of enemy with no logic to it - James 9 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5421536 Share on other sites More sharing options...
+splendidnut Posted March 2 Share Posted March 2 Nice. Sounds like you're making good progress. 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5421847 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 4 Author Share Posted March 4 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 4 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5422648 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 4 Author Share Posted March 4 On 3/2/2024 at 5:10 AM, splendidnut said: Nice. Sounds like you're making good progress. Thank you! It's a lot of fun to get back into programming again. It's a perfect blend of math, logic and troubleshooting! - James Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5423005 Share on other sites More sharing options...
Mike_at_AEI Posted March 7 Share Posted March 7 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. 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5424879 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 7 Author Share Posted March 7 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 4 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5424984 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 8 Author Share Posted March 8 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) 3 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5425297 Share on other sites More sharing options...
Thomas Jentzsch Posted March 8 Share Posted March 8 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? 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5425337 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 8 Author Share Posted March 8 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 https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5425620 Share on other sites More sharing options...
+splendidnut Posted March 8 Share Posted March 8 For reference: The bB Multisprite kernel (used in 1942) uses SwitchDraw for P0, and SkipDraw for P1. The BruceLee kernel is currently using MaskedDraw. 1 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5425628 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 8 Author Share Posted March 8 Just a minor update today, corrected some of the playfield colours. - James 20240308 Build: ✓ Corrected Playfield Colours (20240308) 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5425775 Share on other sites More sharing options...
Thomas Jentzsch Posted March 10 Share Posted March 10 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. 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5426791 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 10 Author Share Posted March 10 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 https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5426854 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 11 Author Share Posted March 11 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 3 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5427033 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 12 Author Share Posted March 12 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 2 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5427599 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 12 Author Share Posted March 12 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 1 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5427991 Share on other sites More sharing options...
Thomas Jentzsch Posted March 12 Share Posted March 12 Hardware or software collisions? Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5428009 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 12 Author Share Posted March 12 1 minute ago, Thomas Jentzsch said: Hardware or software collisions? I'm going to try using hardware collisions to begin with as I think I'll be able to get away with it without much of an issue. - James Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5428013 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 14 Author Share Posted March 14 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 https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5428913 Share on other sites More sharing options...
+ZeroPage Homebrew Posted March 14 Author Share Posted March 14 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 4 Link to comment https://forums.atariage.com/topic/361757-pac-line-2600-atari-2600-development-log/#findComment-5429329 Share on other sites More sharing options...
Recommended Posts