Jump to content



0

Lunar Lander: Super kernel demo


13 replies to this topic

#1 supercat OFFLINE  

supercat

    Quadrunner

  • 6,367 posts

Posted Wed Nov 2, 2005 10:46 PM

Here's a demo of a new kernel I wrote for a "Lunar Lander" style game. Like the FB2, this one has 30Hz flicker **BUT** in exchange for that flicker you get a high-resolution background *AND* a nice-sized ship sprite (20+ pixels wide when pointed sideways at maximum thrust) *AND* some other really cool effects I don't think have ever been done on the 2600.

Attached File  LL.bin   4K   324 downloads

To use this demo, fire it up and notice the somewhat-vectory ship superimposed on the hires landscape (which is hopelessly out of scale of the ship--sorry about that; the landscape is drawn for the zoomed-out view and the ship is sized for the zoom-in view). The ship may be moved about the screen using the joystick.

The real coolness comes, though, when you push the RESET or SELECT buttons. I'm not going to spoil the surprise. And whatever you do, don't push FIRE. :)

At first glance, one might think the game looks like a Suicide Mission kernel. And in some ways the resemblance is very strong. It uses six sprites per line spaced wide, shifting by eight pixels on alternate frames to show a 96-pixel-wide bitmap. But there's a twist: the Suicide Mission kernel uses 1K or so of RAM to hold a bitmap. This binary doesn't use any extra RAM. So how does it work?

I don't want to spoil everything by giving away my secrets too easily, but this little demo should be fairly easily adaptable into a full-fledged game (though I expect having multiple zoom-in views like the arcade version does would require using a bankswitched cart).

I will reveal this much: what you are seeing with the space ship in this demo is "real". If I wanted to vary the size of the rocket flame in response to use controls, I could do so very easily. I have some tricky code in there which makes the impossible, possible, even on a dinky little 1.19MHz 6502.

#2 Gateway OFFLINE  

Gateway

    Stargunner

  • 1,903 posts
  • Trotter Atari Globetrotter now on Facebook!
  • Location:Missouri

Posted Wed Nov 2, 2005 11:23 PM

:thumbsup:

Very interesting! I'll have to play with this some more tomorrow. :)

#3 Albert OFFLINE  

Albert

    Quadrunner

  • 27,238 posts
  • Location:NGC 224

Posted Wed Nov 2, 2005 11:38 PM

Fired it up in Stella, very cool what you've done so far. Would love to see this developed further. Keep up the great work!

..Al

#4 Nathan Strum OFFLINE  

Nathan Strum

    River Patroller

  • 4,894 posts
  • It's dead, Jim.
  • Location:Newhall, CA

Posted Thu Nov 3, 2005 9:08 AM

Very cool. :D I've always really liked Lunar Lander, and would love to see a quality port of it for the 2600.

#5 mojofltr OFFLINE  

mojofltr

    River Patroller

  • 2,593 posts

Posted Thu Nov 3, 2005 9:21 AM

Wow! :thumbsup: 8)

Albert, on Wed Nov 2, 2005 11:38 PM, said:

Fired it up in Stella, very cool what you've done so far. Would love to see this developed further.  Keep up the great work!

..Al

View Post


Ditto that!

#6 Lord Helmet OFFLINE  

Lord Helmet

    AtariAge Anomaly

  • 9,630 posts
  • Location:Denver, CO.

Posted Thu Nov 3, 2005 9:30 AM

I actually like the FB2 Lunar Lander, but another port is always welcome! Lunar Lander Deluxe!

BTW looks good so far :)

Edited by Lord Helmet, Thu Nov 3, 2005 9:30 AM.


#7 Emehr OFFLINE  

Emehr

    River Patroller

  • 3,217 posts
  • Happiness is... a chomping Pac-Man!
  • Location:An obscure body in the SK system

Posted Thu Nov 3, 2005 12:38 PM

Looks great! I'd love to see a Lunar Lander with scaling background, which I hear the FB2 version doesn't have. Impressive work. Looking forward to updates!

- Jason

#8 mos6507 OFFLINE  

mos6507

    River Patroller

  • 4,728 posts

Posted Sun Feb 12, 2006 11:51 AM

Fantastic kernel.

Could you post another demo to show how it would look with a small sprite for the zoomed out view also?

#9 ZylonBane OFFLINE  

ZylonBane

    River Patroller

  • 3,115 posts
  • Location:KC, KS, USA

Posted Sun Feb 12, 2006 6:09 PM

Screw the kernel, what really impresses me is the real-time rotation (and exploding?) of the sprite data. Now that's something you don't see a 2600 do every day.

#10 supercat OFFLINE  

supercat

    Quadrunner

  • 6,367 posts

Posted Sun Feb 12, 2006 8:12 PM

ZylonBane, on Sun Feb 12, 2006 7:09 PM, said:

Screw the kernel, what really impresses me is the real-time rotation (and exploding?) of the sprite data. Now that's something you don't see a 2600 do every day.

View Post


You pushed the button, didn't you. I thought I told you not to do that.

There's a lot of precalculated data for the rotations, but the program nontheless is doing a fair amount of "real work" each frame. One limitation with the method is that drawing things at a different scale would require a separate copy of some rather large data tables. Accommodating different space ships (or parts of space ships, like thruster or rotation-rocket flames) is fairly straightforward. Unfortunately, doing a smaller spaceship would probably require using a different set of scaling tables because certain errors are proportional to the scale involved. The math routines are about +/- 1 pixel which is fine for large scale, but at small scales getting closer to +/- 1/2 pixel (the best possible) would be much better.

Note, BTW, that in some ways the LL demo is the opposite of my texture-mapping demo (see my blog). That one needs about 2K of tables for every different logo that's used (which is why there's only one) but could easily accommodate different scales or motion effects without needing any new large tables.

#11 SpiceWare OFFLINE  

SpiceWare

    Quadrunner

  • 5,993 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Sun Feb 12, 2006 8:19 PM

supercat, on Sun Feb 12, 2006 8:12 PM, said:

You pushed the button, didn't you.  I thought I told you not to do that.

View Post

:lolblue:

#12 Rob Mitchell OFFLINE  

Rob Mitchell

    River Patroller

  • 2,657 posts
  • Location:Your Village

Posted Sat Apr 15, 2006 7:54 PM

Update?

Rob Mitchell, Atlanta, GA

#13 supercat OFFLINE  

supercat

    Quadrunner

  • 6,367 posts

Posted Sun Apr 16, 2006 12:11 AM

View PostRob Mitchell, on Sat Apr 15, 2006 8:54 PM, said:

Update?

The LL demo was a little something I cooked up while taking a break from Strat-O-Gems. I've not done anything with it since; I don't really know what my design objective should be. I think with a 32K "standard" cart I could probably achieve a smooth-scrolling background which would be something quite unprecedented on the 2600. I know I could do a really nice background on a 4A50 cart, but that would seem to be somewhat cheating. The biggest technical hurdle I've not had any really good ideas for is collision detection, though I'm sure I could solve that if I put my mind to it.

I guess the biggest "problem" with LL is that I don't really feel like using 4A50 for a game that could be done without it, but I don't really feel like producing a game without 4A50 that could be done better with. On something like Ruby Runner, I don't feel I'm cheating by using 4A50 because the game goes far beyond anything that could be achieved any other way.

Edited by supercat, Sun Apr 16, 2006 12:13 AM.


#14 Shawn Sr. OFFLINE  

Shawn Sr.

    Anti-Keyboard Warrior

  • 12,489 posts

Posted Sun Apr 16, 2006 10:09 AM

View Postsupercat, on Sun Apr 16, 2006 2:11 AM, said:

I guess the biggest "problem" with LL is that I don't really feel like using 4A50 for a game that could be done without it, but I don't really feel like producing a game without 4A50 that could be done better with. On something like Ruby Runner, I don't feel I'm cheating by using 4A50 because the game goes far beyond anything that could be achieved any other way.


Whatever the means be, It's cool no matter how you make it. I would love to be able to buy this game from you on a cart or at least have a BIN to make my own if the "copyright" gets in the way.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users