Jump to content
IGNORED

The Celery Game (was:"Screen rolls at the start")


Recommended Posts

Never mind. I figured it out.

 

 

Dumping paddles to ground is a very important step :)

 

Also, while the code didn't change, you missed a couple new comments just after Kernel: which are relavent to paddle support:

    ; turn on the display ; DGS and remove paddle dump to ground
        sta VBLANK      ; 3  9 - Accumulator D1=0, turns off Vertical Blank signal (image output on)
                        ;        Accumulator D7=0, removes paddle dump to ground DGS
Link to comment
Share on other sites

I made the cellar look more like a cellar.

post-9475-0-74434300-1469487824_thumb.png

But a question remains. It looks as though every time you start the game on a real 2600, the display shifts down a pixel for a frame or two. I think this is caused by the code to get the first Y position of the item, but I'm not sure. I've tried everything to get rid of it, but nothing helps. Although if I have to leave it in there, I have to leave it in there. I'm such a perfectionist.

 

celery28.zip

Link to comment
Share on other sites

I don't know how, but I think I finally fixed that dumb stupid problem about the game jumping its display 1 pixel off on real hardware problem. I still don't know why it was happening, though, but I'm sure that was the problem and not my eyes deceiving me since it quit doing it. But anyway, let me know if it happens again. I need to dig my paddles out of the garage and test it that way.

celery28a.zip

  • Like 1
Link to comment
Share on other sites

Usage of paddles can be subjective for up/down movement. When I play this I see the incinerator on the right side of the screen, so when the right side of the paddle moves up, and the incinerator moves up, it feels right to me.

 

That said, just use subtraction to reverse the range. Right now the steps in UsePaddle are:

  • convert range of 49-164 to 0-115
  • convert range of 0-115 to 0-38
  • convert range of 0-38 to 11-49
Just add one more step:
  • convert range of 49-164 to 0-115
  • convert range of 0-115 to 0-38
  • reverse range of 0-38 to 38-0
  • convert range of 38-0 to 49-11
Right now you see this in the code:

    lsr             ; A = 0-38
; end divide by 3    

    clc             
    adc #11         ; A = 11-49

change it to this:

    lsr             ; A = 0-38
; end divide by 3    

    sta Temp        ; flip the range
    sec
    lda #38
    sbc Temp        ; A= 38-0
    
    clc             
    adc #11         ; A = 49-11

Since up/down paddle use is subjective, I would suggest making the reversal under player control.

    lsr             ; A = 0-38
; end divide by 3   

    bit SWCHB       ; this tests the difficulty switches.  BVC (switch=B) or BVS (A) for the left switch, and BPL (B) or BMI (A) for the right.
    bvc SkipReverse ; do not reverse range if Left Difficulty = B

    sta Temp        ; reverse the range
    sec
    lda #38
    sbc Temp        ; A= 38-0
    
SkipReverse:
    clc             
    adc #11         ; A = 49-11 (or 11-49 if not reversed)

Note: code is untested

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

Came back to this project to see if I could add/change anything. I was able to add a few things:

+ Added eye to the celery, which is missile1. Pretty cool that you can have missiles be different colors. Why not in bB? At one point, I had two missile1s be different X positions and slightly different colors. I thought that was weird.

+ When the vegetarian runs out to the left, he disappears off screen and the game ends. Previous versions had him stuck there being animated walking against the non-existent wind.

+ Found and fixed a bug where the floor changes steepness.

Let me know if you find any weirdness.

celery32.zip

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

I tried for a few hours and just can't make multicolor sprites. Argh! What I want is for the little guy to be these colors:

 

VegColor
    .byte #$f6
    .byte #$9c
    .byte #$9c
    .byte #$4c
    .byte #$4c
    .byte #$a8
    .byte #$a8

but I just can't do it. No matter what I do, nothing works.

Link to comment
Share on other sites

Thank you so much, again! It hadn't occurred to me to try to do what you did. I changed the colors a bit, as well as added grayscale colors for when the b&w switch is on. i thought it'd be nice to not have the vegetarians running around naked. I also solved a little problem I was having about the death. I got it to 262 scanlines BUT when the death noise was playing, the floor went down by a pixel and when the death noise was over it went back up. I fixed it, though. I have about 180 bytes left. I doubt I'd do it to this game, but is making a 4k game as easy as changing a simple ORG value?

 

celery34.zip

Link to comment
Share on other sites

Thank you so much, again! ... is making a 4k game as easy as changing a simple ORG value?

 

 

No problem.

 

Yep, from Collect:

;===============================================================================
; Define Start of Cartridge
;===============================================================================
 
    ; define a segment for code
    SEG CODE    
    
    ; 2K ROM starts at $F800, 4K ROM starts at $F000
    ORG $F800
so change that to ORG $F000 and you'll build a 4K ROM.
Link to comment
Share on other sites

I decided I wanted a visible entrance to the incinerator. So I played around for 2 1/2 hours and finally got one. It's the ball. But then the score decided to get crazy. So I decided to delete some code that wasn't useful and the problem went away. I don't know what causes it, but sometimes there's lines that get between the ones and tens digit, especially if the ones digit is 6 or higher. I have a little less than 200 bytes to work with. My ultimate goal with this game is to keep it at 2k. Anyway, let me know if you find anything weird or see improvements I could make, or changes you want.

celery35.zip

  • Like 1
Link to comment
Share on other sites

Since the idea is for the guy to go in the incinerator, I decided to switch the collision from player1 (the incinerator) to ball (opening in incinerator.) Unfortunately, this caused a problem about flashing items for a split second before they start going across the screen, but I was able to fix it by voiding the sprite if its x position was 2 (starting.)

I am also wondering how Chavert got a green celery on a PAL TV. I thought it would be purple.

celery36.bin

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