Jump to content
IGNORED

Microvaders for Atari Lynx


Songbird

Recommended Posts

On 2/9/2022 at 12:51 PM, jgkspsx said:

Holy crow! Amazing work @agradeneu
 

It would be nice if “Lexis Mode” were an easter egg that could be unlocked for old time’s sake, though :)

The new art style looks incredible! Nothing beats a talented pixel artist! 
 

Edit: Congrats!!!

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

Latest challenge: I've noticed that the invaders start moving a bit slow when the screen is filled with them (which is the default behavior for the secret game in Lexis, by the way). Yet this shouldn't really be a problem, because the Lynx has no problem pushing out 50-100 sprites per frame. So what's the deal? Glad you asked!

 

Turns out the RNG in Microvaders is a very slow multi-iteration process. I used Handy to clock it a few times, and it recorded 7,000 CPU cycles to generate one random number. The scale of this number doesn't really make sense, as the 65SC02 CPU is only running around 4MHz (4,000 cycles per second), so I think Handy is not properly counting clocks per instruction. To confirm, I stepped through a few simple instructions one by one, and sure enough Handy is recording 3x or even 4x the clocks for a single assembly line of code. That's something that would be nice to fix just for debugging purposes. But still, keep the 7,000 cycles in mind.

 

I started poking around to see how to generate proper RNGs on a 8-bit CPU, and found very good and compact examples all written in assembly. Dropped a new implementation in place of the old, and got it down to 279 cycles. That's more than a 20x improvement! Plus it still seems to generate RNGs just fine. Now I can fill the screen with invaders, and no slow down! :)

 

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

I captured that video with Mednafen, although I typically use Handy for testing and screenshots since Handy has the built-in rudimentary debugger (perfect for assembly hackers :)). Has anyone else noticed that Mednafen doesn't use pure black for 0/0/0? I'm guessing it picks some median value for each Lynx palette combo, as all the colors look a little washed out compared to Handy. I guess the real test is how it looks on a real Lynx though.

 

Anyway, here is a screenshot showcasing new sprites when the small invaders break formation and attack!

 

image.png.eb452f5c8abead8cee4d50ed71a8a70f.png

  • Like 4
Link to comment
Share on other sites

What an awesome looking game, can't wait to buy this one!

 

Can i add some suggestions at the expense of getting my name in the credits? :D

 

Put the score in small white text at the very top of the screen (maybe use the same font as Namco's Galaga's score text)

 

Delete the score down the bottom. (Just rely on the score up the top)

 

Move the main ship lower to the point where it say's score now.

 

Move the Alien ships up a little...not much just a tiny bit, maybe to where the upper score is now.

 

Try and improve the scrolling speed of the invaders which will make them move alot more smoothly!

 

If i can think of any more ideas i'll let you know!

 

Idea 1. Put a Level number in the bottom row on the right side with the number of ships on the left as is.

  • Like 1
Link to comment
Share on other sites

Thanks for the feedback! Glad to see fans excited about this game.

 

Just to clarify on the two scores, the top is the high score, the bottom is the current score. I cannot easily change the font in the game, but can reposition the text (in fact I already have compared to the original code). I could also add a label next to the top score to make it more obvious.

 

I've already slightly increased the size of the playfield relative to the original, but cannot increase it more without negatively affecting other mechanisms in the game such as rate of fire and number of bullets on-screen. Another example is the game has "movement pattern" data which tells each invader where to go for the next frame. Even something seemingly simple like "move all invaders up 4 pixels" would actually require hand-edits of hundreds of bytes of data. Not sure I trust myself to get all those edits done without injecting a new bug. ;)

 

I will likely include a level number on-screen to help the player have a sense of progression. I did something similar in Centipede. Although in this game, your progression is much more closely aligned to your score, since you have to destroy all enemies to advance.

  • Like 2
Link to comment
Share on other sites

Looking for opinions on the "pixel shatter" explosion effect. For the small invader, I'm launching four particles which change colors as they expand away from the main explosion. Recently I enhanced the code to launch a 2x2 color-changing "particle" since it's more noticeable on the Lynx screen. For example:

 

image.png.477485c159d7ec6c318ad02928e963cb.png

 

I'll put up another video in the near future showcasing this bigger particle, but in general I think I like it better this way. Thoughts?

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

OK, it took me waaaay too long to get this video preview made, but here is Microvaders with the bigger explosion debris. Do you prefer this or the original pixel-sized debris?

 

I found that single pixels were a bit hard to see on an original Lynx screen, thus these bigger debris graphics might look better overall. Still to come: randomizing the debris so it doesn't make the same pattern every time.

 

 

  • Like 4
Link to comment
Share on other sites

3 hours ago, Songbird said:

OK, it took me waaaay too long to get this video preview made, but here is Microvaders with the bigger explosion debris. Do you prefer this or the original pixel-sized debris?

 

I found that single pixels were a bit hard to see on an original Lynx screen, thus these bigger debris graphics might look better overall. Still to come: randomizing the debris so it doesn't make the same pattern every time.

 

 

Would it be possible to keep both styles?  As long as you're doing a debris randomizer, maybe have explosions of both pixel sizes to add further variety.  But I totally get it if it's a memory issue.

 

I think I actually prefer the smaller pixel-sized explosions.  I would be concerned that the chunkier debris could get mistaken for bullets.  But without playing both versions side by side, it's hard to say.  If the smaller version doesn't show up as well on actual hardware, that's a valid concern.

  • Like 1
Link to comment
Share on other sites

Thanks for the feedback! If it helps, the chunkier debris is what I had on the demo cart at Midwest Gaming Classic. :) And yes, I did have the thought about making some debris chunkier and some single-pixel.

 

Right now each piece of debris is tracked individually in the Lynx, which gives me more flexibility for changing its color, vector, and duration. But it's also software intensive. What I could do is switch to a pre-rendered "pixel shatter" sprite animation. Every pixel shatter would look the same, but I could more easily get a cloud of pixels instead of just four. Things to ponder...

  • Like 2
Link to comment
Share on other sites

Looks great (both explosion styles).  Can't wait to purchase this one, will look great on the McWill enhanced Lynx!  Sorry if it's been asked - will there be an option to turn off the music?  No matter how good it is, any game music gets grating after a few hours of play.

  • Like 2
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...