+littaum Posted June 13, 2021 Share Posted June 13, 2021 (edited) Mount up in your Power Sphere on the field to compete against another person or "Daisy", an AI drone who makes up for lack of precision with enthusiasm. With 5 different selectable A.I. skill levels, you can even have two AI drones play against each other and cheer them on from the stands. Whoever scores the most goals within the time limit (or sudden death playoff in case of tie) wins! Play one of four seasonal variations (Spring, Summer, Fall, Winter) to find out who truly is the ElectroBall champion! ElectroBall is a new 16K homebrew game written in assembly for your Atari 2600 or Atari 2600 compatible system. This game in ROM form may be used for free for personal use or for online/offline public use as long as no fees are directly charged to play the game. This game may not be directly sold or packaged with other items to sell in any form without prior permission from myself. The beta/WIP period is over and I have released the final "Version 1.0" binary to the public. Enjoy! I may look into a special "Publisher Branded" version of the cartridge for sale on physical media. With emulators and flash carts the need for physical media is not as great these days and having good artwork and a polished manual is key. But rest assured, the actual game itself would be identical to what is posted here. My own 7800 & 2600 (and 2600 Jr) and TV set are NTSC, so for PAL50/PAL60 testing I could only try them on emulators or try my best using my Harmony Encore cart as well as depending on the kindness of others to test on their systems (special thanks to Atariage members Philsan and Bomberman94 for testing multiple iterations on their PAL system as I tweaked settings...) You can download the final V1.0 ROMs (NTSC & PAL50/PAL60 formats) for use on emulators (I've tested on Stella, Javatari, and the Argon app for Android) or Harmony-type carts here: ElectroBall_V1.0[NTSC].bin ElectroBall_V1.0[PAL60].bin ElectroBall_V1.0[PAL50].bin Or play them directly in a web browser on javatari.org from these links: ElectroBall V1.0 NTSC Version ElectroBall V1.0 PAL60 Version ElectroBall V1.0 PAL50 Version I also have attached manual text to help explain the various options in the game. It is available here: ElectroBall V1.0 Documentation.pdf Notes on development history of the many ROMs I posted: * WIP Beta 1 - Initial posting * WIP Beta 2 Many AI variations! I've renamed the AI from Beta 1 to be "Hard", and have added a "Medium" and "Easy" mode. I have also added a "Super Mario Kart" style "AI Adapt" mode where the AI will adjust its play level to be harder or easier depending on if it is behind or ahead. There is also an "AI Random" mode which will change the AI behavior every time it gets the ball. Ability to specify game length from 1 to 10 minutes in 1 minute increments. Ability to specify none, one or both players be human or AI, allowing for a "0 to 2 player" game. An options screen to configure all of these combinations (1,000 different potential games!) An ability to change options, re-start a game or go back to the options screen after a game using the joystick for a more "Couch Compliant" experience. An increase in ROM size from 8K to 16K. I saved a few hundred bytes in optimization before adding the options screen, but the data heavy options screen plus coding in AI options for both players caused me to exceed the 8K limit. Fortunately I could use the standard Atari 16K bank-switching scheme. I'm currently at 10,850 bytes of game ROM used. * WIP Beta 3 No change to gameplay or features. Hopefully the title and options screen no longer shake on more "discerning" consoles. My one test case on my 2600/7800 system (pressing and holding the fire button on the splash screen makes the title screen shake) is resolved with beta 3. Fixed an issue where the "Atari 2600" text underneath the splash screen was not as centered as it could be. * WIP Beta 4 New PAL60 compiled version. Reduced instances of AI controlled players intentionally running into walls when they have the ball. * WIP Beta 5/6 Beta 5 was tested with just a few individuals to improve stability and vertical centering on PAL systems Beta 6 has better centering of the title/options screen. In addition, the PAL50 version game screen should be better centered (and on Javatari it's no longer at the very tippy top of the screen). The player on the right side has had its color brightened by 1 when in Black/White so that it isn't quite so dark on actual systems. I've made the AI on Hard mode be better (but not impossible) on goalie defense on spring/summer game variations. I am able to beat it on hard mode, but I need a joystick with very precise control and I need total attention paid to the screen. This also makes the game difficulty switches on spring/summer for AI Hard more apparent - if you set one goalie to fast and one goalie to slow, the slow goalie will give up more goals than the fast goalie. If you then reverse it, you will watch the other goalie give up more goals. The other side effect is that AI Hard really dominates AI Medium or AI Easy, but there should be enough variation in the AI for players of all skill levels to enjoy. * WIP Beta 7 Removed a superfluous VSYNC that caused some systems to display ghosting at the very top. VSYNC/VBLANK between all screens is now consistent in where they are called in the scanline draw. Cleared sound effect variables at beginning of game to prevent any sound effects from previous games from playing at the beginning of next game. * V1.0 Changed version number on title screen to V1.0 Misc wall of text, just my own thoughts on the game and various inspirations: During the middle of the year last year as I was wasting some time browsing facebook, an ad for the Udemy course on programming for the Atari 2600 came up with a sale price of $10. Being the middle of the pandemic, it seemed like a nice diversion. Why not try to learn to program for the game system from my youth where a patient professor with a soothing voice leads me through assembly programming at a pace I choose? I took the course, then read Andrew Davie's book, re-read "Racing the Beam" which I had purchased years earlier, read the randomterrain.com series on Darrell Spice, Jr's very excellent Collect game tutorial (which the Udemy course seemed to base a lot of its code on as well!), the Stella programmer's guide by Steve Wright, the Atari 2600 tutorials on 8bitworkshop.com, and the plethora of informative posts on programming right here at Atariage.com. The amount of information publicly available on how to program for the Atari 2600 in the year 2021 is simply fantastic. Even after reading all that, programming for the Atari 2600 to me is still somewhat .. formidable. ElectroBall is actually my 4th game idea and 3rd attempted implementation for a game. The others were a bit too ambitious for my current 6502/6507 skills. For this game I mainly limited myself to what I could do with a single HMOVE during a given frame to see what I could do with 2 sprites, 2 missiles, a ball, background colors and the playfield. That allowed me a more simplified runtime kernel (the familiar "2 line kernel" (2LK) with some embellishments) and let me learn 6502/6507 assembly and the various Atari 2600 options by focusing on code in the the overscan and vertical blank sections. I also had a lot of fun coding in the various hardware switches (difficulty, select, reset, black and white) that the 2600 featured as well as the ROM-size soaking splash & title screens. Implementing the "Atari bank switching for dummies" example from these forums and seeing code execute in different banks was also very cool to see in action. One of my favorite games from the 80's was Hat Trick - I played it on multiple 8-bit systems and the game play (Spring and Summer variations) of ElectroBall is heavily based on that. I also thought that an overhead perspective of a Ballblazer type game would also translate well (and is the basis for the Fall and Winter game variations). I also was enamored with the "momentum based" control of the homebrew R.C. Sumo Bots and wanted to do something similar - like the mention on ZeroPage Homebrew when R.C. Sumo Bots was played, there should be more games in the bumper car genre! I tried to develop the game to feature what I think are the 2600's strengths - bright vivid colors, fast responsive gameplay, neat lower range beep boop sounds and rocket engine crowd noise. Nothing about my game is particularly groundbreaking (other than the splash/title screen to game code size ratio, which I believe I've set a new record - ha!), and some portions of my code is borrowed from elsewhere (the scoreboard is a modified version from Collect, as is the sound effects base engine and my runtime kernel is a fairly heavily modified version of the 2LK from Collect, the Atari jingle and "fire to exit splash screen" is borrowed from the AtariAge logo sample code recently posted, and the cycle through the colors of the Atari Fuji logo on the splash screen is based on the many color cycling background tutorials out there) and I used many of the utilities from the alienbill.com web site to add flourishes. All inefficient subroutines are of my own design! Having an AI was also useful for figuring out gameplay bugs and difficulty tuning. The Winter variation used to be a lot tougher, but I made it easier after the AI couldn't even score a single goal in 3 minutes... AI Medium is about 50% more effective offensively than AI Easy. AI Hard is about 50% more effective offensively than AI Medium but also better at defense on Spring/Summer variations. Particular places I learned 6502/6507 assembly: https://www.udemy.com/course/programming-games-for-the-atari-2600/ http://www.lulu.com/shop/andrew-davie/atari-2600-programming-for-newbies-revised-edition/paperback/product-23644281.html https://www.randomterrain.com/atari-2600-lets-make-a-game-spiceware-00.html https://8bitworkshop.com/v3.5.2/?platform=vcs Stella Programmer's Guide by Steve Wright 12/03/79 Countless topic posts on Atari 2600 programming on Atariage.com Web sites I used to help design various components of my game: https://alienbill.com/2600/playerpalnext.html - Playerpal 2600 for sprite design/animation https://alienbill.com/2600/splash-o-matic - Splash-o-matic (now Atari-background-builder) for title screen https://alienbill.com/2600/atari-riff-machine/ - Atari riff machine (to plan out sound effects and title jingle) https://www.masswerk.at/vcs-tools/TinyPlayfieldEditor/ - Tiny playfield editor (to draw out Fuji logo on splash screen) Places I used to test out my game during development: Stella (The developer interface in this emulator is fantastic! The udemy course was worth it just for showing me the larger world present when you press the ~ key) https://8bitworkshop.com/v3.5.2/?platform=vcs (I could modify code in real time to see its effects!) https://skilldrick.github.io/easy6502/ (For testing basic 6502 functions) https://javatari.org/ (8bitworkshop uses this too but was also handy to test the ROMs on its own). Oh - and a big nod to the Atari 2600 development package for Visual Studio Code. A great modern development environment! Edited September 11, 2021 by littaum Update for Complete. 18 2 Quote Link to comment Share on other sites More sharing options...
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.