Jump to content

Ben_Larson

Members
  • Content Count

    350
  • Joined

  • Last visited

Posts posted by Ben_Larson


  1. Still doing some code reorganization and a few fixes but getting close I think.

     

    One of the issues I've battled this whole time is actually fitting everything in the timing constraints to ensure there's no screen rolls ...and I'm still doing some more reorganization along those lines.

     

    I've actually had to resort to checking the overscan/vertical blank timer in some key places and skipping or deferring non-essential game logic when the time until the next screen redraw is too short - for example: checking the joystick button or adding enemy squares can be skipped in certain situations if there just isn't enough time left.

     

    It's kind of an interesting technical subject in it's own right - sort of a "poor-mans CPU scheduling".  I was thinking I might do some kind of blog post about it when I'm all done...

    • Like 1

  2. Another update. Changes since the last update:

     

    * Added title screen with difficulty selection (pictured below) - so no more difficulty switches for adjusting the difficulty level

    * Fixed screen roll after game ending

    * Adjusted some colors

     

    There's still a few minor bugs that remain to be fixed...

     

    Ben

     

    squareraid.bin

     

     

     

    SquareRaidTitleScreen.png

    • Like 5

  3. 4 hours ago, Sohl said:

    I think if I do it this way, the bank-switching can be slightly less smart... the Bank 2 would always switch to Bank 1 for drawing the screen (albeit to different specific routines), then always switch back to Bank 2 for overscan processing.  This seems better than in my current setup, where I might have two different banks to switch back to.   But it would take some work to get there!  Do any of you tend to set things up in functional sections like this, or have different banks handle different phases of play (more time-sequential)?

     

    I have tried to do functional separation in the past specifically to eliminate code duplication.

     

    Here's a comment I put at the top of my source code for Panky the Pandy (which was also 16KB).


    ; Bank 1: Display kernel, main program loop, vertical blank game logic, AI-related overscan game logic, and graphics data
    ; Bank 2: Room initialization routine, room data, and all other overscan game logic
    ; Bank 3: Title screen and ending screen kernels and graphics data
    ; Bank 4: Music playing routine and music data

     

    So there's 2 different banks where kernels live (1 and 3), but none of them share (and consequently duplicate) graphics data as far as I recall.

    • Like 2

  4. Okay, new ROM.  The changes since the last one are:

     

    * Fix for bankswitching bug that was causing it to crash in Stella

    * Added a basic 'player hit' animation so it doesn't look like the system just froze when you die

    * Support for using the joystick button to start a new game after you die (so you don't have to get up and press reset).  This causes screen roll right now but that will eventually be addressed.

     

    Let me know if you guys see any issues...

    squareraid.bin

    • Like 6

  5. 1 hour ago, Karl G said:

    This is beautiful, and unusual for a 2600 game in that it keeps track of that many shots. At first I didn't realize I could drop that many bombs at once, and I did much better once I realized that. I would personally like to see different colors for your bombs vs the shots coming up to you, and perhaps a more solid-looking ship, but it's also good as it is now.

    Yea - the maximum is actually 6 bombs and 14 bullets on screen all at once.

     

    I thought at first that maybe I could go even higher, but I determined after staring at the code for a while that it probably wasn't gonna happen without going down to 24 or 20Hz (even if I could find the RAM space).  There just isn't enough CPU time.

    • Like 1

  6. 9 hours ago, Prizrak said:

    Game freezes when I play on my L6 and some others are mentioning the same thing on FB. Love the progress so far.

    Sent from my SM-N960U using Tapatalk
     

    I just commented on the Facebook Atari homebrew thread about this.  The freezing when you die is the expected behavior right now and a carryover from the original Javascript game.  Just haven't gotten around to changing it (assuming that's what you're referring to).

     

    That being said, there is also a pause functionality controlled the color/B&W switch, so if you're experiencing something other than what I just mentioned, it could be related to this...


  7. Hi everyone and happy 'almost the weekend'.

     

    It's been some time since my last Atari 2600 homebrew.  Well last year I started tinkering again, and sure enough one thing has led to another, and now it appears I'm roped back in. :)

     

    This latest effort is an attempt at a port of a Javascript game I wrote some time ago for a 1K Javascript competition.  The game is called 'Squareraid', and is what might be described as a 'gravity game'.  You control a ship like you would in lunar lander, except you're not actually landing.  Instead ...you are dropping bombs and getting shot at. :)  It starts off rather slow-paced, but gradually enemies begin to spawn faster and it ramps up.  The goal is simple: survive as long as you can and get the highest score possible by destroying enemy squares.

     

    If I'm being honest, the main reason I started this in the first place was because I wondered: how many bullets and bombs I can I get on the screen at the same time?  The answer seems to be about 20, and that's running at 30 FPS and using Superchip RAM.

     

    The difficulty settings control the enemy bullet speeds and are:

     

    Left: Easy, Right: Easy - Slow

    Left: Hard, Right: Easy - Normal

    Left: Easy, Right: Hard - Fast

     

    Let me know what you think so far.

     

    P.S. Here is the original 1k Javascript game for comparison.  In this, the controls are W/A/S/D and B to drop a bomb: http://www.blarworld.net/squareraid.html

     

    SquareraidScreenshot.thumb.png.5cb512aa210020d7606d025cab9a5202.png

    squareraid.bin

    • Like 10

  8. 17 hours ago, Swami said:

    Or he steals them from landfills, warehouses, homes game stores and put them on the ship to leave earth with for reprogramming/out of embarrassment

    See I was thinking of a similar but slightly more absurd angle here:

     

    ET returns to his home planet many light years away.  Upon arriving, he finds out his game has been unceremoniously buried in the New Mexico desert.

     

    He then leads a massive invasion force back to Earth to exact his revenge upon humanity. :)

    • Like 1
    • Haha 1

  9. On 1/20/2021 at 1:29 PM, ziggystar said:

    I released a game earlier last year called Break Vaders. I know how hard it is to address scrolling from left to right on AV so good work there!

     

     

    128400601_10224403979426383_8459396567701308483_n.thumb.jpg.55d543f57daba9d8f5b678357ee31ddc.jpg321287244_Screen1.thumb.png.c4e3f0dca07fa8ce4a0102672c7fcc43.png

    Awesome Ben! And now there are 6 games! 

     

    Woah, nice... I had no idea.  This is awesome.  So I guess mine's the second homebrew game and we've collectively increased the system library by 50%? ;)

     

    As an aside: what was your process for making the cartridges? Did you use new old stock/used 2532 EPROMs or did you try to use something else and make an adapter?

     


  10. Slightly updated version with a few sound effects added.

     

    Also, here are some tutorial materials as promised:

     

    http://www.blarworld.net/adventurevision_hello_world.html

     

    It's a detailed writeup for an interactive 'hello world' demo I made.  It also goes over some of the general info about the system.  The github repository containing the 'hello world' code itself is linked at the bottom.

     

    I hope all 2 of you out there who enjoy programming both obsolete AND hopelessly obscure video game systems enjoy it! ;)

    tabletennis.bin

    • Like 1

  11. Happy New Year everyone.  Here's a new version with a title screen which took way too long to do, partially because I had to reorganize half the dang code in order to support another page of sprite data. :)

     

    Next up is to figure out how to do sound effects.

     

    I'm also working on a technical writeup and a simple 'hello world' program source file that will go along with said writeup for anyone who's interested.

     

    tabletennis4.png

    tabletennis.bin

    • Like 4

  12. 2 hours ago, BDW said:

    Never heard of the Adventurevision before now, but reading about it it's a very interesting piece of hardware from an engineering perspective. Great work on the game, I'm looking forward to seeing some tutorials.

     

    Do you have a link to the technical documentation that you referenced in your post? Sounds like it would be some mighty fine toilet reading.

    Yep, it's right here: https://atarihq.com/danb/files/AdvTechSpecs.pdf

     

    I think he figured out everything in this document from reverse engineering the system himself and partially disassembling the BIOS, which I can only imagine must have required a ton of perseverance.

     

    Speaking of the BIOS, it has a number of routines, but the only one I actually used is the one that handles copying the video memory data to the LED register in realtime (BIOS address: 0x36).

     

    There's other routines for things like clearing the video memory and copying graphics data into video memory, but I didn't actually use any of those (so far anyway).


  13. First of all Merry Christmas and/or Happy Holidays to everyone. :) Been some time since I posted anything on Atariage.  I guess you might say I've been 'retired' from the homebrew scene for a while and doing other things in life... that is until recently.

     

    Earlier this year I started digging into Dan Boris' old technical documentation on the Entex Adventurevision.  As you may know, there isn't a whole lot of resources available online to get started programming on this system since it's pretty obscure, so even after reading his (invaluable) documentation I wasn't sure I'd be able to really do much at all.  I downloaded an assembler, started tinkering, and after a few failed starts, I did eventually manage to figure some things out and get some basic graphics showing up on-screen.

     

    After proving that I could at least do that much, I decided to keep going and get a simple game together as a slightly more ambitious project.  As far as I know there's only ever been one other homebrew for this system, and that was the 2013 MEGA demoscene demo.  So this may be the first homebrew game...? (could be wrong here).

     

    As you may have guessed from the title, it's a clone of a certain quinessential 70s arcade game which shall remain nameless :).  It's mostly done - just needs some sound effects and a title screen I think. There's a 2 player mode and also a 1 player vs-the-computer mode that has 3 difficulty settings.  Hard mode is pretty tough to beat, but not impossible.

     

    One twist I implemented is a 'high stakes' mode where the points at stake increase as the length of the rally increases, up to 9 points.  The current rally value is shown at the top of the screen when playing in this mode.  Playing in this mode generally prevents games from going on too long, and can also make for some interesting come-from-behind-victories if the losing player gets lucky and wins a big rally.

     

    I have not yet tested this on the actual hardware, but I think it should work.  I do actually own a hardware unit (that's a whole other story as to how that came to be), so I plan to attempt some testing here in the near future (I need an EPROM burner and some rom chips first).

     

    The best way (possibly only way?) to play the game emulated is to download MESSUI here: https://messui.1emulation.com/

     

    Any feedback is welcome.

     

    Also when I finish this, I plan to release some tutorial materials to assist others who may want to try their hand at programming the system since there's very little available online - seems only fair after all the programming help I've gotten in years past from other homebrew developers.

     

    Take care everyone. :)

     

    tabletennis.bin

    tabletennis1.pngtabletennis2.pngtabletennis3.png

    • Like 6
    • Thanks 1

  14. I love doing SECAM versions! It's like a bonus technical challenge at the very end to see if you can make it look presentable... :)

     

    Yours is actually looking very good... better than my SECAM conversions for Incoming and Panky the Panda anyway. :)


  15. Another method to gain more cycles for your code is to unroll the loop, meaning you get rid of the loop entirely and duplicate the code as many times as needed to draw the desired number of lines.

    I did this in 'Incoming' for the main kernel loop actually - in order to get enough cycles for the asymmetrical PF, 2 player objects, missile, and PF/background color changes every 8 lines. It's unrolled into 8-line segments.


  16. Ok I told myself when I started in October that December 1 was my deadline, so I think this may be the final version - for this year at least. ;)

     

    Changes since last one:

     

    1. Changed Jingle Bells to start on the verse instead of the chorus

    2. Slowed down Adeste Fideles aka O Come All Ye Faithful

    3. Added Good King Wenceslas

     

    Here's the final track list:

     

    1 - Jingle Bells

    2 - Deck The Halls

    3 - Silent Night

    4 - We Three Kings

    5 - Carol of the Bells

    6 - Adeste Fideles

    7 - Good King Wenceslas

    8 - We Wish You A Merry Christmas

     

    Enjoy!

    very2600xmas.bin


  17. I kept it on Jingle Bells for background music while I work on stuff, and there was a couple of seconds of silence before it switched to Deck The Halls. I like the music, but it seems a bit weird changing octaves and channels like it does.

     

    Yea, certain notes are only "in tune" in certain octaves, so some songs work better than others. Then you have certain songs which aren't doable period because they contain out-of-key notes (i.e. accidentals) - I actually started on What Child (aka Greensleeves), but had to give up on it for this reason.

     

    I've tried to make some of the octave switching not so noticable but some songs work better than others. We Wish You a Merry Christmas is probably the worst offender so far in this regard... :)

     

    The silence is on purpose, since it seemed kinda weird going straight into the next song...


  18. Cool game, especially for 2K. I like the music too. I'm not very good at it yet though. :)

     

    I don't know if you're completely finished or not, but one idea I had was to maybe add some power-ups that would randomly fall, which when used, could lower your snow by a level...

×
×
  • Create New...