Jump to content





Now! With Scrolling! (Also, NWCGE)

Posted by , 24 February 2006 · 689 views

2600 Game Development Metroid NWCGE
SO, VCSTROID development continues, somewhat slowly.Now the 1K master map is implemented, and you can scroll (to the right, only).Since I will be at NWCGE and plan on demoing this, er, demo (along with some other stuff), I thought I'd polish it up a bit, so I also added the Metroid tunes I was working on a month ago.
Now a 32K binary, using the bankswitching scheme I outlined a post ago.
Attached File  Metroid20060224.bin (32KB)
downloads: 179

Change tunes with SELECT.I've been thinking a bit more about this Metroid port and I realized a couple of days ago that my kernel doesn't really support displaying the lava. :(
Attached Image
Not sure what to do about that...nor what to do about displaying doors. I could use sprites, but it would cause some serious flicker, especially in rooms like this:
Attached Image
Oh, and, speaking of NWCGE, I will be there with games to sell and stuff to demo, along with David (djmips). I'll be there almost all day Saturday and he'll be there all weekend. So if you're in the neighborhood, stop by!EDIT: Here is the unfinished stuff I'll be bringing to the show to demo. :)
Attached File  NWCGEdemos.zip (25.2KB)
downloads: 160




Fine progress! :)

Seem to be some tough challenges ahead though.
  • Report
Is it possible to put orange scanlines on the opposite rows of your blue? I know you need the extra time to display stuff, but IIRC it never takes up very much of the screen (say more than 1/4th)? Plus, I don't think it's in very many of the rooms, but I'd have to go back and play it.

2 lines of playfield would probably be too big (?)for the door bubbles, but you could do something like this:

10
10
11
11
11
11
11
11
11
11
10
10

Add the blank rows back to it if you like too.

Just a couple of thoughts that probably won't work. :)

-JD
  • Report
Yeah, tough challenges ahead is right. :)

Though I'm not too worried, since I doubt I'll ever finish a port, anyway. If I get an engine that supports a complete Metroid port except for lava (and doors?), I'll be happy to make something else out of it. ;)

As far as filling the blank rows with orange...well. Two problems with that:
1. I need those blank rows to do things like draw/reposition sprites and missiles.
2. There isn't enough RAM to store another copy of the screen.

Though, incidentally, I have thought about flickering the playfield, displaying odd rows one frame and even rows the other frame. Give it a more solid look. But probably more trouble than it would be worth.

Thanks for the thoughts, though.

EDIT: Thinking about the doors...

I could replace the blue doors with a hole in the wall. You have to shoot the doors to open them, but it would be minor to eliminate that, I think. Could still leave the red doors (requiring missiles shots to open) as sprites, and hope that they aren't in places where flicker would be intolerable.
  • Report
Here is a list of the unfinished stuff I'll be bringing to the show to demo:

4 Unnamed shooters
Wumpus Hunt 2600
VCS Metroid
Cosmic Guerrila
Arcade Pong
Sprite Multiplex Demo

The unnamed shooters are:
1. four-player (paddles) shooter.
2. Demon Attack On Steroids! Silly demo of sprite multiplex engine.
3. Ghoul (working title) a 1K minigame I halfway abandoned in October.
4. sprite-multiplexing shooter I posted to the [stella] list a week ago or so.

#s 1 and 4 have been polished a bunch in the last couple of days. Added music to #1 and added more enemies and fixed a bunch of bugs in #4.

Wumpus Hunt 2600 is the batari BASIC game I wrote a few months ago.
Cosmic Guerrila is the demo I wrote last summer.
Arcade Pong is the arcade-faithful Pong demo I wrote a while back; polished up for the occasion.
The sprite multiplex demo is the one that's in the blog a few posts back. With the little white squishy guy and the million blue guys.

I'll attach all the binaries to the top post.

One cool thing about taking these to the show is that David has a CC, so I can see what the sprite multiplex engine looks like on a real TV. Crap? Or...? :)
  • Report

As far as filling the blank rows with orange...well.  Two problems with that:
1. I need those blank rows to do things like draw/reposition sprites and missiles.
2. There isn't enough RAM to store another copy of the screen.


Do you use the Ball for anything? Do doors ever appear in places where there is any black area above or below them?

It might be possible to, whenever a door is on the screen, position the Ball there; on the now-blank scan lines, set COLUPF to either the door color (if the Ball should appear) or black (if it should not).

For the lava pit, if there is never any blackness to the sides of it, you could start setting COLUBK to orange on the lines where lava should appear. Note that you'd either have to set COLUBK back to black for the alternate scan lines, but there probably wouldn't be any sprites there to worry about).

Alternatively (again, since you won't have sprites there to worry about) you could have tables of precalculated PFx values for the lava pit (based upon how far over it had scrolled) and show those on the normally-black scan lines.
  • Report
I've never owned an NES, but I hear Metroid is popular. Nice work!
  • Report

I've never owned an NES


Uihjah...

So did you just start playing video games after the NES heyday or did you skip it on purpose?

I think my brother and I own/ed every popular video game system available in Germany :)
  • Report

I've never owned an NES


Uihjah...

So did you just start playing video games after the NES heyday or did you skip it on purpose?

I think my brother and I own/ed every popular video game system available in Germany :)

We had an Atari 2600, but once my family bought an Atari 800, they didn't buy a dedicated game console again. Like today, I spent more time programming for fun than on games. Of course I could do both on the 800. I finally broke the trend in 2001 when I bought a Dreamcast.
  • Report

I've never owned an NES, but I hear Metroid is popular.


Me neither. I started with the 2600, and for years resented Nintendo for usurping Atari's rightful place atop the videogame industry. :)

Of course, it wasn't until later that I found out that Atari destroyed itself, and Nintendo actually saved the industry in a way Atari never could have under Tramiel's regime.

Mind you, this wasn't until long after the NES was itself an obsolete system. In fact, I never owned any Nintendo system until I bought a GBA SP a couple of years ago.

Anyway, I've never played Metroid either. Or Super Mario. Or Zelda. The list goes on and on...
  • Report
Same here - though I got a VIC 20. First console after the Atari was a Play Station and that was to play Spyro The Dragon - I collect all things dragon :)
  • Report

Do you use the Ball for anything?  Do doors ever appear in places where there is any black area above or below them?

It might be possible to, whenever a door is on the screen, position the Ball there; on the now-blank scan lines, set COLUPF to either the door color (if the Ball should appear) or black (if it should not).

That's an interesting idea. I'm not using the ball. Probably worth exploring, though I doubt it could fit in.

For the lava pit, if there is never any blackness to the sides of it, you could start setting COLUBK to orange on the lines where lava should appear.  Note that you'd either have to set COLUBK back to black for the alternate scan lines, but there probably wouldn't be any sprites there to worry about).

Unfortunately, it is very possible and, in fact, somewhat common, to have sprites in the lava.

Alternatively (again, since you won't have sprites there to worry about) you could have tables of precalculated PFx values for the lava pit (based upon how far over it had scrolled) and show those on the normally-black scan lines.

This might be more promising.

Thanks. ;)

EDIT: And, you know, the NES is really a good system and worth checking out.

EDIT II: Also, it turned out that there were some rather, um, major bugs in the Metroid binary that I wasn't aware of. :) On real hardware, hitting SELECT (to change the music) got the console stuck in an endless loop somewhere.

EDIT III: Found and fixed the bug. I was going to try to fix it at the show, but I didn't have the source with me. Anyway, it turns out that I just ran out of RAM (already! ;)) and the return address from a subroutine was being overwritten.
  • Report