Jump to content

Some of the demos I was developing 6 years ago


24 replies to this topic

#1  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Sat Nov 7, 2009 12:17 PM

So, while scrounging on my old Tower computer, I found some files that may be of interest to the community.
I was doing some 7800 programming back in the day. I'd like to share my journey from 2001 to 2003.

First, we have the "Hello World" demo. Honestly, I think this was someone else's code, just my verification that I can compile it. Maybe I added a word in it or something, but it's pretty lame. No credit for me on this one.
Attached Image: Converted_20010525_hello_world.gif
Attached File  20010525_hello_world.a78   48.13K   116 downloads

Next, we have a color demo. At the time, remember, emulator support was very, very low (MESS, which did not run well on my slow computer), and there were no cuttle carts. So, I did EPROM burning tests a lot. So, I made a "color cart" as a permanent addition to my cartridges. Here it is:
Attached Image: Converted_20010804_color01.gif
Attached File  20010804_color01.a78   32.13K   122 downloads

After that, I decided it was time to make a game.
I wanted to write a zelda-like game. Here it is:
Attached Image: Converted_20020623_zelda_1.gif
Attached Image: Converted_20020623_zelda_2.gif
Attached File  20020623_zelda.a78   32.13K   137 downloads

It was during this stage that "Mister Purple Pants" was born.
I liked the demo, but I ran out of graphics space. My general thought was that I wanted to see the limit of overlapping sprites. Apparently, it hit me too fast before I could do other interesting things, so I had to abandon that kernel in favor of another one.

So, this brings me to one of my more favorite demos.
Attached Image: Converted_20020721_falling_demo.gif
Attached File  20020721_falling_demo.a78   32.13K   136 downloads

I thought I needed to learn about graphics compression techniques. So, I did.
I learned how Mega Man did its graphics, as well as Metroid. I put "Mister Purple Pants" in a one-room world where there was constant gravity. He can jump from item to item, so this is just a demo, but it seemed to be going in the right direction.

But, it was then that I wanted to try another project. I was thinking "What is the one game that the 7800 doesn't have that it really should?" The answer was Frogger.
Attached Image: Converted_20030101_frogger_nosound.gif
Attached File  20030101_frogger_nosound.a78   32.13K   82 downloads

Writing this frogger demo got me excited (it could have gone somewhere), bit I also got really, really bored after writing this one screen. I thought it was a great demo, but I had so many things to worry about at this stage. Do I be arcade-perfect? If so, will that bore me, or would I rather do my own game? How will I deal with all of the collision detection? These questions haunted me for some time, and I decided to abandon the work done so far, and go back to Mister Purple Pants.

And, here is Mister Purple Pants in his last appearance.
Attached Image: Converted_20030728_purplepants_1.gif
Attached Image: Converted_20030728_purplepants_2.gif
Attached File  20030728_purplepants.a78   32.13K   107 downloads
This is what I ideally would have turned into a Mega Man style game. Scrolling is complete, and there's a few screens worth of world defined. I was quite happy with it. But, then, real life got in the way.

There wasn't a lot of knowledge or tools for the 7800 back then, so I typically found myself striving to get one demo done at a time. And, with this final demo, I gave up. Now, it's neat to see that the community has gotten through some of the major issues that were headaches for me back in the day.

I was really, really secretive about these in the past. I really wanted to drum up excitement about releasing a 7800 game, since none were created for a very long time. But, now that I look at it, these things are probably better shared with everyone. Maybe they'll be of interest.

Best regards,
-John

#2  

    Quadrunner

  • 5,695 posts
  • Joined: 22-April 01
  • 7800 Guy
  • Location:Southern California, USA

Posted Sat Nov 7, 2009 12:27 PM

I remember testing a few of those demos for you. ;)

Mitch

#3  

    River Patroller

  • 2,030 posts
  • Joined: 04-April 04
  • none
  • Location:germany

Posted Sat Nov 7, 2009 1:36 PM

Hi John
Thanks for sharing.
greetings Walter :)

#4  

    River Patroller

  • 3,921 posts
  • Joined: 18-February 02
  • Location:Toronto, Canada

Posted Sat Nov 7, 2009 2:17 PM

Neat! Are there Cuttle Cart versions that can run on a real 7800?

#5  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Sat Nov 7, 2009 2:52 PM

View PostDracIsBack, on Sat Nov 7, 2009 2:17 PM, said:

Neat! Are there Cuttle Cart versions that can run on a real 7800?

If anyone wants to make them, feel free. :)
I'm not quite sure how to do that.

-John

#6  

    Stargunner

  • 1,336 posts
  • Joined: 07-December 03
  • Location:Canada

Posted Sat Nov 7, 2009 7:21 PM

Woops. Reflex!

Attached Thumbnails

  • Attached Image: 20020623_zelda.png
  • Attached Image: 20030728_purplepants.png


#7  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Sun Nov 8, 2009 10:47 AM

View PostMord, on Sat Nov 7, 2009 7:21 PM, said:

Woops. Reflex!

Mord, that just made my day. :)

-John

#8  

    7800 Developer

  • 5,462 posts
  • Joined: 20-November 08
  • Busy bee!
  • Location:North, England

Posted Mon Nov 9, 2009 9:21 AM

I just ran them through my header stripping utility. Not tested them, but here they are :-

Attached File  20010525_hello_world.bin   48K   88 downloads
Attached File  20010804_color01.bin   32K   82 downloads
Attached File  20020623_zelda.bin   32K   92 downloads
Attached File  20020721_falling_demo.bin   32K   90 downloads
Attached File  20030101_frogger_nosound.bin   32K   66 downloads
Attached File  20030728_purplepants.bin   32K   60 downloads

#9  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Tue Nov 10, 2009 8:19 AM

Out of my own curiosity, I looked into the source code from the last demo a little bit.
It seems that the graphic generation / mapping code tables were really easy to tweak.
The internal logic though, is crazy. I can wrap my head around a little bit of it, but most of it is foreign to me.

Anyway, I added 5 screens more of length, just for fun.
Attached File  20091102_scrolldemo.a78   32.13K   103 downloads

Obviously, it's not that exciting. But, it kind of makes me remember just how dynamic this engine could be.
Oh, yeah, and apparently late in 2003 I changed the main sprite. The last compiling version had "this new guy" in it.
I think this was an early rendition of Steam Tunnel Bob, the sprite I tried using in a 2600 homebrew project that was put on hold when I worked on Mean Santa (2600).

If I can figure it out, maybe I'll see about making the main sprite animate and change direction. If I can't, well... hey, at least I was able to share some stuff of interest, which was the main goal.

-John

#10  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Fri Nov 13, 2009 10:53 AM

Here's a new version, where I animate the main sprite.
Attached File  20091113_animation.a78   32.13K   107 downloads

Here is the sprite table (obviously, some states have redundancy):
Attached Image: hero_sprites.gif

Seemed like a fun, short exercise to do.

-John

#11  

    Stargunner

  • 1,336 posts
  • Joined: 07-December 03
  • Location:Canada

Posted Sat Nov 14, 2009 3:34 AM

Speaking of fun, short exercises...

Attached Thumbnails

  • Attached Image: 20091113_animation.png


#12  

    River Patroller

  • 3,921 posts
  • Joined: 18-February 02
  • Location:Toronto, Canada

Posted Sat Nov 14, 2009 3:04 PM

Finally was able to get these up and running on an emulator. MacMess fails on some of them but ProSystem on Windows played them all. Thanks for sharing John. I got goosebumps playing your Mega-Man and Zelda experiments. Perhaps U and Groovy Bee should collaborate!

#13  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Wed Nov 18, 2009 8:35 PM

New version today.

Honestly speaking, I'm actually surprised that I'm working on this project.

The code to this project is 6 years old and cryptic. And, I recall that my last update to this program 6 years ago involved a very late night crawl through code to get collision detection working. All I remembered when I started looking at the code again was that it was a rough night with a great sense of accomplishment. Though that was indeed true, I'm now realizing that I must have been drinking or something that night-- the code is definitely functional, but it's uncommented, structurally poor, and has Spanish comments (and, I can't really explain that part).

But all of that amusement aside, I figure-- I very much would like to do something with this code.
It's solid code that I think could be pretty useful stuff.
The current plan is just to add a few little features here and there, and maybe end up with something that has some gameplay value. That would be nice.

This version introduces the "spike" element familiar in Mega Man games.
Touch a spike, and you die. I only have the player have one life, so touch a spike, and blammo-- game over.
Once this happens you can either 1) hit reset or 2) hit select which will restore your one life back.
However, if you use select, note that you may have to use it a few times while you remove yourself from the spike.

Here is is:
Attached File  20091118_spikesadded.a78   32.13K   97 downloads

Comments always appreciated-- though it may not appear like much has changed, these are huge code overhauls. :)

Thanks!
-John

Edited by Propane13, Wed Nov 18, 2009 8:36 PM.


#14  

    River Patroller

  • 2,030 posts
  • Joined: 04-April 04
  • none
  • Location:germany

Posted Thu Nov 19, 2009 1:15 PM

Hi John
Would be great,if you can finish one of your projects.....
The demos are really great.
greetings Walter

#15  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Sat Nov 21, 2009 1:55 PM

We now have ladder support, with a new 2-frame character animation for ladder climbing.

In addition, I've added support for holes that kill you.
And, the player can jump off the top of the screen without weird things happening (dying or getting stuck on invisible walls).

Also, the number of screens to scroll visibly has a set limit.
In this version, there are 12 screens total.
So, when you get to the "final" screen , it'll stop scrolling so that you know you have to go up the ladder to continue.
At the moment, the down-ladder at the beginning of the level and the up-ladder at the end are climbable, but they don't get you to another screen, although in the future, they could/would.

I've doubled the main character's speed, since the level's changed a little-- it's the only way to make it fair, and I think it's fun just to change things up.

Oh, if you die in a hole, hitting select really isn't of much use, since you can't get out of the pit once you're in. :)
If you fall in a hole, you'll need to hit reset for now.

Have fun!

Attached Image: screenshot.gif

Attached File  20091121_ladders.a78   32.13K   58 downloads

#16  

    Stargunner

  • 1,336 posts
  • Joined: 07-December 03
  • Location:Canada

Posted Sat Nov 21, 2009 2:14 PM

View PostPropane13, on Sat Nov 21, 2009 1:55 PM, said:

We now have ladder support, with a new 2-frame character animation for ladder climbing.


Ladder support was going to be one of my next suggestions. Would it be possible to make the code a little more forgiving in where you have to be to climb up/down on a ladder? Meaning if you're at the top of the ladder but not standing perfectly above it, it would still let you jump onto the ladder by correcting your position a little for you.

For instance, standing where I am in this picture, I would expect the code to let me still jump onto the ladder by pressing down. Right now it demands I move just a liiiiittle bit more.

Attached Image: 20091121_ladders_00.png



Quote

Also, the number of screens to scroll visibly has a set limit.
In this version, there are 12 screens total.

I suspect I have an idea of how you pull that off in the code, based on a few calculations I did when pondering scrolling engines for the 7800 a few months back.

What size are you using for DLLs? 8 or 16 lines? I'm sure I could guess by looking at the screenshots, but I'm too tired right now to go counting pixels, and I still need to find me an image that shows all the possible colors on the 7800. :D

#17  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Sat Nov 21, 2009 2:25 PM

View PostMord, on Sat Nov 21, 2009 2:14 PM, said:

View PostPropane13, on Sat Nov 21, 2009 1:55 PM, said:

We now have ladder support, with a new 2-frame character animation for ladder climbing.


Ladder support was going to be one of my next suggestions. Would it be possible to make the code a little more forgiving in where you have to be to climb up/down on a ladder? Meaning if you're at the top of the ladder but not standing perfectly above it, it would still let you jump onto the ladder by correcting your position a little for you.

For instance, standing where I am in this picture, I would expect the code to let me still jump onto the ladder by pressing down. Right now it demands I move just a liiiiittle bit more.

Sure; I think I can manage something like this.

I had a similar dilemma in Steam Tunnel Bob.

One way to program it is to allow the user to just stand there nearby and press up/down, and it'll move the user and grab the ladder. Another solution is to allow for diagonal pushes (so, based on your screenshot, if you press down and right together, you grab the ladder. That's the solution currently implemented. Perhaps I need some combo of both, for the best user experience?

I think I need to play a few old-school NES games that had a good feel for these things, and maybe I can share my findings. I think Mega Man allowed the "nearby" as well as diagonal, but I think Goonies 2 was just a strict diagonal grab. I'll go see, and report back.

I'm definitely up for opinions of what works better (I'm thinking the combo of both is best).

Quote

Quote

Also, the number of screens to scroll visibly has a set limit.
In this version, there are 12 screens total.

I suspect I have an idea of how you pull that off in the code, based on a few calculations I did when pondering scrolling engines for the 7800 a few months back.

What size are you using for DLLs? 8 or 16 lines? I'm sure I could guess by looking at the screenshots, but I'm too tired right now to go counting pixels, and I still need to find me an image that shows all the possible colors on the 7800. :D

I have 12 16-line DLL's, which make for 192 scanlines.

For the image, is this what you're looking for? Surprisingly I found this yesterday:
http://www.atariage....-colour-bitmap/

-John

#18  

    Stargunner

  • 1,336 posts
  • Joined: 07-December 03
  • Location:Canada

Posted Sat Nov 21, 2009 4:37 PM

View PostPropane13, on Sat Nov 21, 2009 2:25 PM, said:

One way to program it is to allow the user to just stand there nearby and press up/down, and it'll move the user and grab the ladder. Another solution is to allow for diagonal pushes (so, based on your screenshot, if you press down and right together, you grab the ladder. That's the solution currently implemented. Perhaps I need some combo of both, for the best user experience?

I think I need to play a few old-school NES games that had a good feel for these things, and maybe I can share my findings. I think Mega Man allowed the "nearby" as well as diagonal, but I think Goonies 2 was just a strict diagonal grab. I'll go see, and report back.

I'm definitely up for opinions of what works better (I'm thinking the combo of both is best).


Checking out Megaman 1 just then, it looks like the code probably keeps track of where the center of the sprite is with respect to the display. If the middle of the sprite is inside a ladder sprite, it'll do the auto-move and let you start climbing it. With that kind of checking, odds are diagonal checking might be wasted time since even going diagonal, you'll still eventually trigger the other method once you're close enough. Being able to just press down when close enough avoids the need to be going diagonal - and running the risk of overstepping it and dropping off an edge instead! ;)

You could try to implement both methods at the same time to see how it works, then try removing the diagonal to see there's a noticable difference. If not then you can just stick with the down-adjustment method and free up some cycles. :)

Quote

I have 12 16-line DLL's, which make for 192 scanlines.

For the image, is this what you're looking for? Surprisingly I found this yesterday:
http://www.atariage....-colour-bitmap/


That's exactly what I was looking for. :thumbsup:

#19  

    Quadrunner

  • 5,695 posts
  • Joined: 22-April 01
  • 7800 Guy
  • Location:Southern California, USA

Posted Sat Nov 21, 2009 5:50 PM

View PostMord, on Sat Nov 21, 2009 4:37 PM, said:

Quote

For the image, is this what you're looking for? Surprisingly I found this yesterday:
http://www.atariage....-colour-bitmap/


That's exactly what I was looking for. :thumbsup:

And here are some really old and not very good screen captures of basically the same thing.
http://www.atari7800...Colorscreen.htm

Mitch

#20  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Mon Nov 23, 2009 4:14 PM

Mord's suggested ladder improvement has been made.

Of note-- the way the engine is implemented, you cannot jump and grab a ladder.
BUT, you can "fall" and grab a ladder. What this means is-- if you're holding down the button, and pass a ladder, you won't grab onto it. Let go of the button, and hey! You grab the ladder just fine.

This may seem weird, but it's because I'm experimenting with some design elements.
Here's the 2 games I'm looking at for reference.

MegaMan = you can jump and grab ladders
Goonies 2 = you cannot jump and grab ladders (note that in Castlevania, you can't jump onto staircases).

I'm not sure which method I like better, so I created a combo for now (plus it masks a hard bug to fix) :).

Preferences/suggestions? I think something like this *could* work, and may promote interesting level design.

Attached File  20091123_ladders2.a78   32.13K   69 downloads

-John

Edited by Propane13, Mon Nov 23, 2009 4:15 PM.


#21  

    River Patroller

  • 3,921 posts
  • Joined: 18-February 02
  • Location:Toronto, Canada

Posted Mon Nov 23, 2009 5:10 PM

View PostPropane13, on Mon Nov 23, 2009 4:14 PM, said:

Mord's suggested ladder improvement has been made.

Of note-- the way the engine is implemented, you cannot jump and grab a ladder.
BUT, you can "fall" and grab a ladder. What this means is-- if you're holding down the button, and pass a ladder, you won't grab onto it. Let go of the button, and hey! You grab the ladder just fine.

This may seem weird, but it's because I'm experimenting with some design elements.
Here's the 2 games I'm looking at for reference.

MegaMan = you can jump and grab ladders
Goonies 2 = you cannot jump and grab ladders (note that in Castlevania, you can't jump onto staircases).

I'm not sure which method I like better, so I created a combo for now (plus it masks a hard bug to fix) :).

Preferences/suggestions? I think something like this *could* work, and may promote interesting level design.

Attachment 20091123_ladders2.a78

-John


Awesome! Are you able to run these at .a78 and .bin files? MacMess doesn't like the files, but I think my Cuttle Cart might.

#22  

    7800 Developer

  • 5,462 posts
  • Joined: 20-November 08
  • Busy bee!
  • Location:North, England

Posted Mon Nov 23, 2009 5:23 PM

View PostDracIsBack, on Mon Nov 23, 2009 5:10 PM, said:

Awesome! Are you able to run these at .a78 and .bin files? MacMess doesn't like the files, but I think my Cuttle Cart might.

Its not been signed.

#23  

    Stargunner

  • 1,322 posts
  • Joined: 24-May 01
  • Location:Philly

Posted Mon Nov 23, 2009 5:43 PM

View PostGroovyBee, on Mon Nov 23, 2009 5:23 PM, said:

View PostDracIsBack, on Mon Nov 23, 2009 5:10 PM, said:

Awesome! Are you able to run these at .a78 and .bin files? MacMess doesn't like the files, but I think my Cuttle Cart might.

Its not been signed.

Holy crap! I guess that's what I get for using a 6-year old makefile system. :)
Thanks for pointing that out.

Here's a bin and an a78 file that are fixed.

Attached File  20091123_ladders3.a78   32.13K   78 downloads

Attached File  20091123_ladders3.bin   32K   60 downloads

I'd definitely be interested to hear if this works on real hardware.

Best regards!
-John

#24  

    River Patroller

  • 3,921 posts
  • Joined: 18-February 02
  • Location:Toronto, Canada

Posted Mon Nov 23, 2009 7:33 PM

Quote

I'd definitely be interested to hear if this works on real hardware.

Best regards!
-John


I was able to get it running on the CC2 with no problems using 7800QUICK and the 32K banking. It runs quite smoothly. Also tried out your Zelda engine, which was a rush! Like most 7800 games, I like to look of it better on real hardware vs. the emulator.

Great work

Edited by DracIsBack, Mon Nov 23, 2009 7:34 PM.


#25  

    River Patroller

  • 3,921 posts
  • Joined: 18-February 02
  • Location:Toronto, Canada

Posted Wed Dec 2, 2009 6:15 PM

[quote name='DracIsBack' date='Mon Nov 23, 2009 8:33 PM' timestamp='1259026387' post='1884180']
[quote]
I'd definitely be interested to hear if this works on real hardware.

Best regards!
-John
[/quote]

A few more pictures using real hardware.

Attached Thumbnails

  • Attached Image: IMG_1548.jpg
  • Attached Image: IMG_1549.jpg






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users