Jump to content
IGNORED

"Shower Scene" 2600 game


jrok

Recommended Posts

Nice game, jrok. In addition to the obvious eye-candy, you've got some innovative gameplay. If I had more free time, I'd volunteer to make a flicker-free kernel for you.

 

Thanks Zach! Honestly this project started out as a sprite looking for a game, but as a gamer I am very hardcore when it comes to play mechanics. I think I'm going to pretend the graphics don't even exist until I get the automata up and running.

 

Cheers,

Jarod.

After you work out the automata, I hope you take a look at the Programming for Newbies guide by Andrew Davie. Programming in assembly and basic are really the same process: moving numbers around, comparing them, and occasionally doing math operations on them. The difference is just that assembly involves paying attention to more details.

Link to comment
Share on other sites

Nice game, jrok. In addition to the obvious eye-candy, you've got some innovative gameplay. If I had more free time, I'd volunteer to make a flicker-free kernel for you.

 

Thanks Zach! Honestly this project started out as a sprite looking for a game, but as a gamer I am very hardcore when it comes to play mechanics. I think I'm going to pretend the graphics don't even exist until I get the automata up and running.

 

Cheers,

Jarod.

After you work out the automata, I hope you take a look at the Programming for Newbies guide by Andrew Davie. Programming in assembly and basic are really the same process: moving numbers around, comparing them, and occasionally doing math operations on them. The difference is just that assembly involves paying attention to more details.

 

I definitely will do that. Learning pure assembly was one of the major goals I had when I decided to try out this hobby, and it still is. My job is sort of suckingup a lot of my extra time and spare neurons at the moment, so I decided to wait until things cool off a little bit before I try to wrap my brain around such a difficult language. I don't have a background in computer science, so I have a feeling it will be quite a bit more difficult for me to pick up than for most.

Edited by jrok
Link to comment
Share on other sites

I definitely will do that. Learning pure assembly was one of the major goals I had when I decided to try out this hobby, and it still is. My job is sort of suckingup a lot of my extra time and spare neurons at the moment, so I decided to wait until things cool off a little bit before I try to wrap my brain around such a difficult language. I don't have a background in computer science, so I have a feeling it will be quite a bit more difficult for me to pick up than for most.

batari Basic offers a great way to ease into assembly gradually.

 

You can begin with inline assembly, starting out by nothing more complicated than replacing simple bB statements with the equivalent assembly commands. For example, instead of writing

 

   a = 4

you could write

 

   asm
  LDA #4
  STA a
end

That's pretty simple, but it's enough to help you start thinking in assembly terms. And then you could branch out to slightly more complicated things, like replacing something like

 

   a = b + 1

with

 

   asm
  LDX b
  INX
  STX a
end

Start small, with just a few commands-- or operands and address modes-- at a time, using them until they come naturally. Work your way up to where you're replacing larger and larger sections of bB code with assembly.

 

Soon, you can try writing your own include files, or perhaps just customizing bB's standard include files. And eventually you can try your hand at writing an entire program in assembly.

 

Michael

Link to comment
Share on other sites

Thank you very much for the explanation, supercat. Could that technique still work with a 2 line kernel, or would the color have to alternate every third scanline instead?

 

For best results, use a single-line kernel. Here's a demo which shows a few different styles of "rain" and sprite coloring. Use right difficulty and color/bw to select four styles of 'rain'. Use left difficulty to select between two styles of flicker. Use up/down to force the sprite to show frame #1 or frame #2. Note that for this demo I used half resolution (even and odd lines show the same data) but that would not be a requirement. Best results may be to use Venetian blinds without flicker, but you'll have to try for yourself to see what you like best.

rain.bin

Link to comment
Share on other sites

Thank you very much for the explanation, supercat. Could that technique still work with a 2 line kernel, or would the color have to alternate every third scanline instead?

 

For best results, use a single-line kernel. Here's a demo which shows a few different styles of "rain" and sprite coloring. Use right difficulty and color/bw to select four styles of 'rain'. Use left difficulty to select between two styles of flicker. Use up/down to force the sprite to show frame #1 or frame #2. Note that for this demo I used half resolution (even and odd lines show the same data) but that would not be a requirement. Best results may be to use Venetian blinds without flicker, but you'll have to try for yourself to see what you like best.

 

This is really exciting stuff, supercat. Thanks for posting this. I have a couple of questions when you have some time:

 

1) Were you able to accomplish this using a modified batari kernel, or was the display kernel built from scratch in assembly?

 

2) Is the rain created with a sprite or the missiles? I really like the fast rain. Much better than either of my shower attempts.

 

3) Could you explain the difference between the different states shown on "Difficulty A" with joystick up, down, left and right? Are the using the same half-res sprites, but are flickered differently?

 

Thanks again,

Jarod.

Link to comment
Share on other sites

1) Were you able to accomplish this using a modified batari kernel, or was the display kernel built from scratch in assembly?

 

Custom kernel. I think it's possible to use custom kernels within VB, but I don't know how it's done.

 

2) Is the rain created with a sprite or the missiles? I really like the fast rain. Much better than either of my shower attempts.

 

The rain is implemented using the Ball.

 

3) Could you explain the difference between the different states shown on "Difficulty A" with joystick up, down, left and right? Are the using the same half-res sprites, but are flickered differently?

 

The kernel uses four shape pointers and four color bytes: even frame even line, even frame odd line, odd frame even line, and odd frame odd line. Presently, there are two shapes defined in the code.

 

Pushing the joystick up or down forces the kernel to display only even frames or only odd frames. One of the difficulty switches controls whether the even scan lines show the same frame as the odd scan lines, or whether they show the other frame. Note that if you were to use different shape data for the even and odd lines, you could improve your vertical resolution if you use flicker, and may be able to improve apparent resolution for areas of the 'bright' color. though testing would be necessary to determine what actually looks good.

Link to comment
Share on other sites

Is this still being worked on or is it done?

 

It's nowhere near being done, heh. Not even close. I've made some progress in the last couple of weeks, but I am going to hold off on posting it until it's fine tuned.

 

Cheers,

Jarod.

Edited by jrok
Link to comment
Share on other sites

Good stuff there Michael.

 

Someone should make a bigger list of things like that to study.

 

Maybe I should make small bB programs that do certain things, just to see the ASM code. Then from the I can tweak something to do what bB couldn't.

 

I definitely will do that. Learning pure assembly was one of the major goals I had when I decided to try out this hobby, and it still is. My job is sort of suckingup a lot of my extra time and spare neurons at the moment, so I decided to wait until things cool off a little bit before I try to wrap my brain around such a difficult language. I don't have a background in computer science, so I have a feeling it will be quite a bit more difficult for me to pick up than for most.

batari Basic offers a great way to ease into assembly gradually.

 

You can begin with inline assembly, starting out by nothing more complicated than replacing simple bB statements with the equivalent assembly commands. For example, instead of writing

 

   a = 4

you could write

 

   asm
  LDA #4
  STA a
end

That's pretty simple, but it's enough to help you start thinking in assembly terms. And then you could branch out to slightly more complicated things, like replacing something like

 

   a = b + 1

with

 

   asm
  LDX b
  INX
  STX a
end

Start small, with just a few commands-- or operands and address modes-- at a time, using them until they come naturally. Work your way up to where you're replacing larger and larger sections of bB code with assembly.

 

Soon, you can try writing your own include files, or perhaps just customizing bB's standard include files. And eventually you can try your hand at writing an entire program in assembly.

 

Michael

Link to comment
Share on other sites

  • 1 month later...

I have an idea..

 

The girl in the shower could be Beverly D'Angelo. She played Chevy Chase (Clark W Griswald's) wife in the National Lampoon Vacation movies.

 

In the one she is showering and Clark sneaks up and reenacts the shower scene in Psycho with a BANANA.

Link to comment
Share on other sites

  • 11 months later...
  • 4 months later...

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