Jump to content
IGNORED

DEMO - Pitfall (not WIP or Game) BIN attached


rsiddall

Recommended Posts

Trying to see how close I can get to the original Pitfall in batari.

Attached .bin contains the first 3 levels (right to left). I've set-up barriers to keep Harry from proceeding further.

 

There are some trade-offs*:

 

Brick wall and/or ladder can't be done as sprites, together, without introducing flicker.

I'm using playfield and ball to achieve something close in appearance.

 

I don't think you can hide Harry when he falls down the holes with CTRLPF, either. There might be some rearranging of the PF/BK that might solve this.

 

Pits opening closing with rolling logs and/or gators create the same problem as the wall/ladder and flicker is introduced. I can get a stationery pit (as playfield) with gators and it works w/out flicker. This allows Harry to traverse the pit by jumping on the gators.

 

Swinging on a vine isn't possible in batari but the above solution solves traversing the pits. Pitfall 2 doesn't have vine swinging either...

 

All of this was just an exercise to see how close I could get to the original game. Idea being, new levels could be introduced along with other elements.

 

Since the actual game already exists on the 2600, there isn't a need to duplicate 1 to 1. This was more of an exercise for me and not a W.I.P.

 

There are some things still in rough state or unimplemented:

Harry will levitate if jump button is held down. Otherwise, jumping will work if you release the fire button.

If trying to climb out of hole (while on ladder) pushing up plus right or left will get you out in the specific direction.

Trees were fudged but still a pretty close approximation.

Screen 3 is where I stopped collision detection and Harry will not fall into the pit.

 

Believe that's everything.

 

*Might be wrong in my assertions. ?

 

 

 

 

 

 

Pitfall-batari.png

Pitfall-batari.bin

  • Like 8
Link to comment
Share on other sites

For a 2600 crossover, maybe you could have a game where Clark Kent is in the jungle, Lex Luthor has imprisoned Harry, and you have to change into Superman, find Lois who has the key to Lex's Jungle Lair, then rescue Harry after fighting a huge scorpion! Or Lois could save Harry.

 

I'm trying to think what other 2600 characters would be fun to put into the jungle, but my mind's drawing a blank.

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

For the vine you could make it one sprite that looks like a line at various angles.  Would take multiple sprites to reproduce a full swing animation.

 

Other than that you could use the Super Pitfall (NES) technique and use up a bunch of round looking sprites and move them relative to each other.

 

___@___

____@__

_____@_

______@

 

 

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Gemintronic said:

For the vine you could make it one sprite that looks like a line at various angles.  Would take multiple sprites to reproduce a full swing animation.

 

Other than that you could use the Super Pitfall (NES) technique and use up a bunch of round looking sprites and move them relative to each other.

 

___@___

____@__

_____@_

______@

 

 

I like the idea of Super Pitfall (vine and other elements). Hadn't looked at examples beyond the original. ?

  • Like 1
Link to comment
Share on other sites

2 hours ago, Gemintronic said:

I just read that DPC+ supports asymmetrical playfields and pfpixel commands.  If you have the space you could just swap playfields with each step of swinging animation in the vine.  Or, manually draw the vine with pfpixel commands.

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#dpc_news

Sounds more involved than I'd prefer.

The pfpixel part would be interesting tho'.

Edited by rsiddall
  • Like 1
Link to comment
Share on other sites

Is there a way to slow the debounce code down:

 

;rem debounce jump
current = INPT4
temp3 = ((current ^ %10000000) & previous) & %10000000
previous = current
if temp3 then gosub harry_jump

 

As it is currently implemented, Harry jumps up/down instantly. I need to be able to add some hang time for him.

I can't figure out how to work a counter into this code example.

 

Since I'm not relying on collision with playfield, I can't have player0y=player0y+1 acting as constant gravity.

Link to comment
Share on other sites

42 minutes ago, rsiddall said:

Is there a way to slow the debounce code down:

 

;rem debounce jump
current = INPT4
temp3 = ((current ^ %10000000) & previous) & %10000000
previous = current
if temp3 then gosub harry_jump

 

As it is currently implemented, Harry jumps up/down instantly. I need to be able to add some hang time for him.

I can't figure out how to work a counter into this code example.

 

Since I'm not relying on collision with playfield, I can't have player0y=player0y+1 acting as constant gravity.

You might consider using fixed point variables for the player sprite. Good news, the feature is built into batari Basic and easy to use.

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#fixedpoint

 

When used, you can position the player sprite on "grid" that is more dense than the Atari's coordinate plane for the five VCS objects. That will provide more flexibility with jumping and gravity--and allow you to implement "hang time".

  • Like 1
Link to comment
Share on other sites

Pitfall is the classic of the atari 2600 classics, for me it will always be at the top of the 2600 list.
Considering you don't intend to do a replication, at least do something different with what you're working with, something like the NES Super Pitfall mentioned earlier.

Possibilities are endless and an expansion of elements could be added that didn't exist in the original.

  • Like 1
Link to comment
Share on other sites

8 hours ago, Gemintronic said:

For the vine you could make it one sprite that looks like a line at various angles.  Would take multiple sprites to reproduce a full swing animation.

 

Other than that you could use the Super Pitfall (NES) technique and use up a bunch of round looking sprites and move them relative to each other.

 

___@___

____@__

_____@_

______@

 

 

 

super pitfall vine.gif

  • Like 3
Link to comment
Share on other sites

4 hours ago, orange808 said:

You might consider using fixed point variables for the player sprite. Good news, the feature is built into batari Basic and easy to use.

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#fixedpoint

 

When used, you can position the player sprite on "grid" that is more dense than the Atari's coordinate plane for the five VCS objects. That will provide more flexibility with jumping and gravity--and allow you to implement "hang time".

I'm implementing the fp for the speed of Harry and the rolling logs currently. Everything would move too fast otherwise.

 

Part of what I'm having trouble with is keeping Harry from levitating if the fire button is held down, too.

Link to comment
Share on other sites

16 hours ago, Gemintronic said:

I just read that DPC+ supports asymmetrical playfields and pfpixel commands.  If you have the space you could just swap playfields with each step of swinging animation in the vine.  Or, manually draw the vine with pfpixel commands.

 

https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#dpc_news

Wouldn't pfpixel use to much? 

 

I don't know how many screens the vine appears on but you could just swap the entire playfield up to the vine from the top.  

 

But I would imagine if using something like DPC+ you would have extra sprites and could just animate a sprite and I can't imagine it flickering. Best my memory the vine doesn't get to close to other sprites.

  • Like 1
Link to comment
Share on other sites

I guess there's a certain way Activision set things up in the original Pitfall so that things don't overlap and don't need to flicker (Activision, at least in those days, avoided flicker like the plaque):

 

- There's always only one type of object on the ground, which is either a snake, a treasure, rolling or stationary logs or gators (3 in a row counts as one since this is taken care of by the TIA).

- Likewise, underground there's only a scorpion or a wall, but not both. The stairs are probably made out of PF graphics.

- The swinging vine is probably done with the ball or one of the missiles.

- The pit, whether opening/closing or stationary, is probably done with mirrored PF graphics.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Anyone willing to take my code and add a "Repetition Restrainer" or "debounce" to the fire button?

If you hold the fire button down, Harry will not complete a full jump but rather a half-jump and float.

 

Of course if you just press the fire button once and let go it works wonderfully.

I think I've got the hang-time down pretty spot on.

 

I'm not using a collision jump (player0,playfield), so it needs to work with this choice.

 

I've looked at the examples provided by Random Terrain and bogax, so not sure what I'm doing wrong.

But if implemented, it kills the animation/hang-time because the restrain happens instantly.

 

Any help appreciated!!

 

harry_jump.bas

Link to comment
Share on other sites

3 hours ago, rsiddall said:

Anyone willing to take my code and add a "Repetition Restrainer" or "debounce" to the fire button?

If you hold the fire button down, Harry will not complete a full jump but rather a half-jump and float.

 

Of course if you just press the fire button once and let go it works wonderfully.

I think I've got the hang-time down pretty spot on.

 

I'm not using a collision jump (player0,playfield), so it needs to work with this choice.

 

I've looked at the examples provided by Random Terrain and bogax, so not sure what I'm doing wrong.

But if implemented, it kills the animation/hang-time because the restrain happens instantly.

 

Any help appreciated!!

 

harry_jump.bas 13.63 kB · 3 downloads

Here's a quick and dirty solution.

 

harry_jump_2.bas.bin harry_jump_2.bas

  • Thanks 1
Link to comment
Share on other sites

23 minutes ago, Fort Apocalypse said:

OMG...this is beyond perfect! It makes sense when looking at what you did but not sure why I couldn't make the connection from looking at the other existing examples. Just amazing!!!

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