Jump to content
IGNORED

Another Galaga thread


discotronic

Recommended Posts

More missiles!!!

 

Just horsing around with the source that was provided earlier for this great WIP.  I have practically zero experience with this type of assembler code, but I am a competent win32 debugger, so I can change obvious things and see if it makes a difference.  One cool thing from the source is that the number of concurrent missiles in the game is specifically capped at TWO so that it is like the "real" Galaga.  Just for fun, I changed that to 4 and removed the assert that checks to make sure nobody changed it, and Voila, you have the same game but with the ability to shoot 4 missiles at a time.  Not good for trying to further the cause toward a full Galaga clone, but super fun if you are just blasting away and playing with the demo.  If anyone is interested, I can post the changes and a sample binary here.

  • Like 2
Link to comment
Share on other sites

On 6/2/2024 at 10:07 PM, Gimmee99 said:

and removed the assert that checks to make sure nobody changed it

 

This one?

 

.assert (formation_row_count+NUM_FORMATION_ROWS)<SCREEN_BUFFER_1,error,"too many variables after buffer_0_erase_high"

 

It checks that the variables allocated in that region do not overlap with the screen buffer. By increasing the number of missiles you've increased the size of the variables and caused an overlap. You need to move some of the variables elsewhere, not remove the assert.

Link to comment
Share on other sites

1 hour ago, playsoft said:

 

This one?

 

.assert (formation_row_count+NUM_FORMATION_ROWS)<SCREEN_BUFFER_1,error,"too many variables after buffer_0_erase_high"

 

It checks that the variables allocated in that region do not overlap with the screen buffer. By increasing the number of missiles you've increased the size of the variables and caused an overlap. You need to move some of the variables elsewhere, not remove the assert.

Yes, of course you are right.  As I said, I am a hunt and peck debugger, with essentially a hammer, so everything looks like a nail.  Just commenting out the assert allowed the game to run on my emulator with no crashes or apparent video glitches, so my goal of having 4 missiles was met.  I'm sure you are right that in some way it would lead to an overwrite or some kind of memory corruption.  

As an aside, it is an amazing piece of code.  Please consider returning to it, and I would even encourage you to not worry about the Galaga port issues.  Just make it an AWESOME "Galaga-like" game.  Just adding in collision detection so that the ship can be hit and limiting the number of ships so there is an end game would be amazing.  

I wish I was closer to this architecture and could muster the brainpower to really understand enough to make some legit changes.  The idea of having a couple of lines at the bottom of the screen that would have cool things like number of ships left and a colorful "Score:" label, seem just out of reach. If you know of any other source that has enough things to copy that would get me super close, I would love to see it and maybe take the plunge to learn.

thanks again for the great fun I have had already messing around with this.

Link to comment
Share on other sites

8 minutes ago, Gimmee99 said:

Just make it an AWESOME "Galaga-like" game

Yes, I think if I did return to it I'd take that approach, especially as all the unlicensed games have gone from the store. That was a buffer to me; if publishers weren't going after unlicensed games being sold, they weren't likely to go after a hobbyist posting their homebrews for free. With Atari releasing new hardware capable of playing these old games, I wonder if publishers will be stricter regarding homebrews. Probably it would just be a cease and desist letter, but I don't feel it's worth taking any chances.

24 minutes ago, Gimmee99 said:

adding in collision detection so that the ship can be hit

There's (basic) collision detection in the version above, to make use of @Synthpopalooza's explosion sound effect.

Link to comment
Share on other sites

On 6/4/2024 at 8:46 AM, playsoft said:

Yes, I think if I did return to it I'd take that approach, especially as all the unlicensed games have gone from the store. That was a buffer to me; if publishers weren't going after unlicensed games being sold, they weren't likely to go after a hobbyist posting their homebrews for free. With Atari releasing new hardware capable of playing these old games, I wonder if publishers will be stricter regarding homebrews. Probably it would just be a cease and desist letter, but I don't feel it's worth taking any chances.

There's (basic) collision detection in the version above, to make use of @Synthpopalooza's explosion sound effect.

Ok, because I am retired and trying to relive my teens, I have continued to waste way too much time trying to remember/learn enough assembly to have some fun here.  I started with a goal of these two things:

1. Add a "game over" experience by having some number of ships that count down when your player ship gets hit.
2. Put the number of ships left in the status bar in the middle.

I have figured out (stolen/copied code) that now inits the number of ships and puts the remaining ship number in the status bar. I have also figured out how to decrement the ships remaining counter when a ship gets hit.  What I cant quite figure out is how to "keep the ship alive" or spin up a new ship if you have ones left. I found the collision code and kind of understand it.  But I can't quite see the best place to say "you got hit, but there are lives remaining, so don't just have the ships disappear, but instead either allow them to stay alive, or spin up a new one in some way".  

If anyone has some direction, I am all ears.  I will keep plugging away, because I am making small progress.  

  • Like 2
Link to comment
Share on other sites

@playsoft @Gimmee99 I have to say this is coming along quite well, I thought we'd never see any progress on this one, especially since the Purge took place last year but yes I would consider this one a product of the labor of love, and that, holds no monetary value but rather that of a passion for putting out great titles on any system, let alone Big Sexy, Paul has all of those conversions he did years ago and even in his own homebrews he has shown it.

 

BTW for @playsoft, what do you think of Champ Games' 2600 version named Galagon??? John Champeau @johnnywc has done awesome work in making his incredible ports for "Mini Sexy" (my name for the 2600 Jr.) and for quite some time I had almost forgotten about the 5200 but yes this version is slowly buy surely coming along quite well. Perhaps maybe @TIX and others will carry this forward.

  • Like 1
Link to comment
Share on other sites

As a quick update, with Paul's help, I think we have worked out at least the basics of:

 

1. Having a set number of ship "lives"

2. Having that number countdown when your ship gets destroyed

3. Respawning the ship into a scenario that is fair

4. Showing the number of lives (ships) left in the status bar

 

After I review and confirm things are working at least to my basic definition of "good enough", I'll post the changes here unless playsoft beats me to it.

 

  • Like 3
Link to comment
Share on other sites

On 6/9/2024 at 12:42 AM, BIGHMW said:

I have to say this is coming along quite well, I thought we'd never see any progress on this one, especially since the Purge took place last year but yes I would consider this one a product of the labor of love, and that, holds no monetary value but rather that of a passion for putting out great titles on any system, let alone Big Sexy, Paul has all of those conversions he did years ago and even in his own homebrews he has shown it.

I've not made a single penny from anything I've done, so monetary value has never been an issue. However, when there were unlicensed games in the store it felt like a buffer; if the IP rights holders weren't going after those, they were unlikely to go after me.

On 6/9/2024 at 12:42 AM, BIGHMW said:

BTW for @playsoft, what do you think of Champ Games' 2600 version named Galagon??? John Champeau @johnnywc has done awesome work in making his incredible ports for "Mini Sexy" (my name for the 2600 Jr.) and for quite some time I had almost forgotten about the 5200 but yes this version is slowly buy surely coming along quite well. Perhaps maybe @TIX and others will carry this forward.

Galagon looks fantastic but it's not really fair to compare a game which runs on a modern day ARM processor, to one that runs natively on a 40 year old 6502. To get an idea of what would be possible with a similar approach on the 5200, take a look at some of @Wrathchild's A8 Uno cart demos (https://youtu.be/D5BMyeijeUI?feature=shared).

 

While ARM games can make better use of the 2600's graphics, they are still limited by them and I'm not sure that level of flicker would be acceptable on the 5200. Otherwise a sprite multiplexer would be the simplest approach, but I used one in AtariBlast! where I purposely arranged the patterns to avoid flicker and there were still complaints!

 

@TIX already contributed the sprites.

  • Like 2
  • Thanks 3
Link to comment
Share on other sites

Ok, another update on my hackfest from this week:

 

With Paul's help, I have completed the following changes/hacks/experiments:

 

1. The demo plays more like a game now with 5 ships to start and a countdown of ships remaining in the status bar.

2. You get the double ship and double missiles by "hitting a boss" which is what gives you the little "400" point bonus already.

3. You get an extra ship when you clear a diving formation perfectly (the thing that already gave you a "1000" bonus)

4. I was also able to figure out the font file format (fortunately it is a basic bitmap of 8x8 for each character) and I added a "character

    for the ship, and a colon, and the letter "s".  I started by having the ship status say:  S:5, but i actually like the little character that looks

    like a ship enough that I am leaving it in !!

 

I have a couple of bugs to work out.  Something i did when initializing everything makes the game start immediately instead of waiting on the start button, so I may have to suss that out.  But in any event, I find it to be super fun and playable.  IF anyone wants to give it a shot, I've attached the xex below.  If nothing else, I would like to hear that it works for someone else?
 

 

 

changes.jpg

ga8.xex

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

 @playsoft this was an incredible demo that you put together a couple years ago, and thanks to @Gimmee99 for adding a few features that make it playable.  Of course, we'd all like more, but this is a lot of fun to play with just as it is.  I got 67,000. 

 

Can you also compile and post both the 8bit and 5200 versions as you make any additional updates?

  • Like 3
Link to comment
Share on other sites

As requested, here is a zip with both the 5200 and the 8-bit binaries.  I did make one small change from the previous build that updates the status bar in a more efficient manner, but in my one 10 minute test run, I didn't see any problems with it.  😛

 

Since instead of this being a Galaga port or clone, its more of a Galaga "ish" type thing, I have renamed the binaries Gish* to visually distinguish them from the demos and previous experiments. 

 

By the way, talking about how the above screen shot looks kind of hi res, that is one thing i LOVE about Altirra.  The window scaling is so good.  I love to size the window so that it's even more like an arcade CRT and the playfield is more skinny.  Too me that looks SUPER cool and makes the game look like it came straight from the Myrtle Beach pavilion in 1981 !!!

gish.zip

  • Like 6
  • Thanks 7
  • Haha 1
Link to comment
Share on other sites

15 hours ago, Gimmee99 said:

As requested, here is a zip with both the 5200 and the 8-bit binaries.  I did make one small change from the previous build that updates the status bar in a more efficient manner, but in my one 10 minute test run, I didn't see any problems with it.  😛

 

Since instead of this being a Galaga port or clone, its more of a Galaga "ish" type thing, I have renamed the binaries Gish* to visually distinguish them from the demos and previous experiments. 

 

By the way, talking about how the above screen shot looks kind of hi res, that is one thing i LOVE about Altirra.  The window scaling is so good.  I love to size the window so that it's even more like an arcade CRT and the playfield is more skinny.  Too me that looks SUPER cool and makes the game look like it came straight from the Myrtle Beach pavilion in 1981 !!!

gish.zip 26.35 kB · 24 downloads

Thanks a lot ! A video in honor to your effort !

 

  • Like 2
  • Thanks 2
Link to comment
Share on other sites

17 hours ago, Gimmee99 said:

By the way, talking about how the above screen shot looks kind of hi res, that is one thing i LOVE about Altirra.  The window scaling is so good.  I love to size the window so that it's even more like an arcade CRT and the playfield is more skinny.  Too me that looks SUPER cool and makes the game look like it came straight from the Myrtle Beach pavilion in 1981 !!! 

 

Hmmm another hack I never knew, Altirra has a scale to hires mode ;)

It's a shame ataris only usable 1x1 pixel ratio display mode is max around 100 pixels high...
I wonder if Galaga kind of game would work with some up-down scrolling like pinball games did ?

 

Did anybody think of trying something like that mode with gfx from gameboy maybe ? :)

I wonder if something like this could be done and playable ?

160x120 (I'm not sure full 120 double scanlines are possible/visible on real crt ? ).
image.png.32d13b9b4fc0c2b64df8019ab6be3e64.png

Edited by popmilo
  • Like 1
Link to comment
Share on other sites

Ok, maybe another "last entry" on this.  Since I was learning about the character set innards, I went ahead and added some new characters to the exiting charset in addition to the little ship character.  I thought it would be fun to have an "Insert Coin" in the status when the game is over.  Also, since the high score is never retained anywhere, and its pretty easy to get 20,000, I instead put a placeholder (the word "Gish") for kind of a game title instead of the high score.  What would be cool is if somebody with artistic talent could create some variant of the Galaga logo but instead have it be Galagish and look something like this:  

 

image.png.43ecf89c457b7825fc54b752ef00982b.png

 

using 8x8 pixel characters (maximum of about 7 or 8), then I would add it in the bottom corner for fun.  No changes in the gameplay or feature set, so I won't post a binary here unless someone just wants it for fun.

I made a video showing the experiment below.  The clipping at the bottom and any visual glitches are from the Windows game recorder. Trust me, it runs smooth as silk:  

 

  • Like 5
Link to comment
Share on other sites

After a whole day of playtesting and a good reminder from Paul, I've gone back to the high score experience.  As he pointed out, it does persist across games so if you are playing against somebody you can know who has the highest score.  Instead I put the logo in the middle in the "game over" state.  I had used "insert coin" there to be silly, but I like the logo better.  No changes in the game logic, but if anyone wants the binaries with the logo in the middle, I can post.  Also the screen shot shows my "best" score ever at just over 70,000 showing how mediocre I am at the game, so lets see someone top that !!!  😛

 

bestlogo.png

  • Like 3
Link to comment
Share on other sites

11 hours ago, Gimmee99 said:

After a whole day of playtesting and a good reminder from Paul, I've gone back to the high score experience.  As he pointed out, it does persist across games so if you are playing against somebody you can know who has the highest score.  Instead I put the logo in the middle in the "game over" state.  I had used "insert coin" there to be silly, but I like the logo better.  No changes in the game logic, but if anyone wants the binaries with the logo in the middle, I can post.  Also the screen shot shows my "best" score ever at just over 70,000 showing how mediocre I am at the game, so lets see someone top that !!!  😛

 

bestlogo.png

Post please!

Link to comment
Share on other sites

13 hours ago, Gimmee99 said:

After a whole day of playtesting and a good reminder from Paul, I've gone back to the high score experience.  As he pointed out, it does persist across games so if you are playing against somebody you can know who has the highest score.  Instead I put the logo in the middle in the "game over" state.  I had used "insert coin" there to be silly, but I like the logo better.  No changes in the game logic, but if anyone wants the binaries with the logo in the middle, I can post.  Also the screen shot shows my "best" score ever at just over 70,000 showing how mediocre I am at the game, so lets see someone top that !!!  😛

 

bestlogo.png

Forgive my clumsy gameplay and pathetic last score... 

 

Edited by Yautja
  • Like 2
Link to comment
Share on other sites

Here is a new experimental build with these changes:

 

The high score is back and working.

The Galagish logo shows in the status bar when the game is "over" and in "insert coin" mode waiting for you to press start.

There is a fake level counter in the status bar now.  It actually only counts up to 20 levels, so if you make it to level 21, the level indicator will show garbage, but there you go.

I'm on vacation for the next two weeks, so hopefully nothing bad broken here ...

gish_June14.zip

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

8 hours ago, Gimmee99 said:

Here is a new experimental build with these changes:

 

The high score is back and working.

The Galagish logo shows in the status bar when the game is "over" and in "insert coin" mode waiting for you to press start.

There is a fake level counter in the status bar now.  It actually only counts up to 20 levels, so if you make it to level 21, the level indicator will show garbage, but there you go.

I'm on vacation for the next two weeks, so hopefully nothing bad broken here ...

gish_June14.zip 26.83 kB · 21 downloads

Awesome guys ! Almost 200,000 points in honor of your effort.

 

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

9 hours ago, ALEXANDER said:

Awesome guys ! Almost 200,000 points in honor of your effort.

 

Hey you made it to the garbage character levels !!!!

I already revamped the level counter and did it differently.  I don't want to use two digits because it crowds the screen too much and also affects the way the high school is updated if you use that blank digit between the garbage and the first 1 in your high score here.  So instead, I now have the counter going from 1 to 8 and cycling through the 4 colors.  So you have red level 1-8, then cyan level 1-8, then yellow level 1-8, then blue level 1-8.  Then after 32 levels, you would get the garbage chacters.  I might even change each color level to go from 0-9 which would give you 40 total levels before the garbage !!!

Now that there is a level tracker, I am also thinking about doing *something* depending on the level.  Maybe something easy to start with, like if you are on a level higher than 16, instead of 400 points for hitting a boss in motion, you get 800.  Or maybe after 16 levels, if you clear the level you get a new ship.  Let me know if you have any specific ideas that would be easy to "change" using the existing game assets.

And actually now that i think about it and see how good you are at the game with current difficulty, maybe when you get to level 16, I should start TAKING THINGS AWAY !!???  Like no more double ship, and no more extra lives !!!???

:-P

 

  • Like 4
  • Thanks 1
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.

Guest
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.

Loading...
  • Recently Browsing   0 members

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