Jump to content
iesposta

Flappy - my 1st released game.

Recommended Posts

Thanks for the link. Making a 2nd build with PAL colors is not a problem.

The problem is the batari Basic data statement that sets the background colors. Using variables does not work. I can't use the Color B&W Switch to change NTSC/PAL colors because the background colors come from that data statement.

How about:

 

1) Change your standard kernel so that it doesn't update COLUBK during the kernel, but leave the area where the score bar is updated. From looking in Stella it was 1 spot you have to change. I changed it from STA COLUBK to NOP COLUBK.

2) Apply the logic for changing background color to before you do drawscreen.

 

The routines in the link I posted are for converting a color to PAL on the fly, but do take some cycles to execute.

Share this post


Link to post
Share on other sites

Version 11 RC2! Changes in "random" for the pipe. I can't tell any difference. :P

Binary in first post.

post-29575-0-97235300-1396827073_thumb.jpg

>>>>> Video <<<<<

  • Like 1

Share this post


Link to post
Share on other sites

Nice label! Attractive graphics also.

 

I have just one comment/suggestion about gameplay: there's not enough lift each time you press the button / flap your wings. I find myself using the turbo option in an emulator. I think it would be more fun and less tiring on our thumbs if the bird got more out of each flap. :)

  • Like 4

Share this post


Link to post
Share on other sites

I would suggest changing the flapping. Everytime Flappy Bird flaps, it reset the y projection(birdp) to -4. Every 3 frames, add 1 projection to flappy projection variable,(birdp). Every 2 frame I add variable birdp to birdy, birdy=birdy+birdp. birdp is what going to pull flappy y cordinate. This will bring the control to match the original Flappy Bird a bit.

I am making one for the Colecovision at the moment.

Edited by Kiwi
  • Like 1

Share this post


Link to post
Share on other sites

I have added a PAL60 binary in the first post #1. Sorry it took so long!

 

If this is in the AtariAge Store, be sure check (or request) the PAL60 option!

 

Compare it to the video or the NTSC binary and suggest any PAL60 color changes, please.

  • Like 1

Share this post


Link to post
Share on other sites

As a side.. can anyone figure out the background color multi-sprite kernel enough to allow changing which data array the background colors are?

 

Right now you get:

 

data msk_bgcolor
250, 102, 146, 242, 170, 172, 78, 176, 160, 68, 162, 140, 48, 142, 170
170, 120, 140, 150, 110, 190, 130
end

 

and that's it even if you have multiple banks.

Share this post


Link to post
Share on other sites

As a side.. can anyone figure out the background color multi-sprite kernel enough to allow changing which data array the background colors are?

Right now you get:

 

data msk_bgcolor

250, 102, 146, 242, 170, 172, 78, 176, 160, 68, 162, 140, 48, 142, 170

170, 120, 140, 150, 110, 190, 130

end

 

and that's it even if you have multiple banks.

I had to think about this a bit. Since this is batari's Multi-Sprite Kernel hack I think it depends on the kernel and what is bankswitched.

The data table is for colors. This data is "set" into ROM, unlike the other kernel shapes and colors where they reside in RAM(?).

If there is only one Kernel and many banks, it will always use this data as color.

 

Now if you were to make two 4K games, or more, both with a batari Basic hacked Multi-Sprite Kernel, you would have multiple whole kernels that each use different data for colors. Combining them into one file is beyond me, maybe you want to ask RevEng if you can link them together like in his "many bank individual parts" that get combined to a single binary??

 

NTCS and PAL Binary of "Flappy" are in Post #1.

  • Like 1

Share this post


Link to post
Share on other sites

Changes in "random" for the pipe. I can't tell any difference. :P

I don't know what that means. You made the pipe more random? If so, did you use rand16?

Share this post


Link to post
Share on other sites

I don't know what that means. You made the pipe more random? If so, did you use rand16?

:D Nope! I used:

 

 

asm
jsr randomize
sta b
lsr
lsr
adc b
ror
lsr
lsr
clc
adc #92
sta b
end
:-o

Share this post


Link to post
Share on other sites

 

:D Nope! I used:

 

 

asm
jsr randomize
sta b
lsr
lsr
adc b
ror
lsr
lsr
clc
adc #92
sta b
end
:-o

 

 

What does that do? Is it better than rand16?

Share this post


Link to post
Share on other sites

I love the "Activision" style AA logo! :thumbsup:

I had used a spelled wrong "Activison" [ two letter i's not three] but it was close enough to be dangerous, so I mangled AtariAge to give it that certain "feel."

 

Also there is text above and below the AtariAge logo under the picture, that got misprinted.

I especially like my, "USE JOYSTICK BUTTON," instead of "USE JOYSTICK CONTROLLER." He he ;)

  • Like 1

Share this post


Link to post
Share on other sites

 

What does that do? Is it better than rand16?

I asked about rand16 This_thread

I believe RevEng gave me that assembly code. I went with it as I didn't want my my code to return only 4 values.

Share this post


Link to post
Share on other sites

I believe RevEng gave me that assembly code. I went with it as I didn't want my my code to return only 4 values.

I don't think it was me. Maybe bogax?

Share this post


Link to post
Share on other sites

I asked about rand16 This_thread

I believe RevEng gave me that assembly code. I went with it as I didn't want my my code to return only 4 values.

 

In that post, you were using dim rand1=$DA instead of dim rand16=$DA. Maybe that's why you were having a problem?

 

I usually use dim rand16=z and my random numbers are pretty darn random as long as I use division instead of AND. When I used only AND in my programs, I started to see the same patterns. For example, a = (rand/8) is more random than a = (rand&31). It's weird.

Share this post


Link to post
Share on other sites

 

What does that do? Is it better than rand16?

I wanted a range between two values, so I used the output of this website that bogax pointed me to:

http://basicplay.netau.net/ranged_rand.html

 

I don't know if it is better than rand16, but it does what I wanted.

As far as that rand1=$DA I didn't write that. It was copied from some existing code template - as I never programmed anything in the standard kernel before.

Share this post


Link to post
Share on other sites

 

What does that do? Is it better than rand16?

 

it just produces a range from the bB rand

 

there's some related stuff here http://basicplay.netau.net/

 

(there's a splash ad to click through)

 

in particular some javascript that shows a scatter plot of rand and rand16

(the scatter plot just plots the current value versus the previous value)

  • Like 1

Share this post


Link to post
Share on other sites

I wanted a range between two values, so I used the output of this website that bogax pointed me to:

http://basicplay.netau.net/ranged_rand.html

 

I don't know if it is better than rand16, but it does what I wanted.

As far as that rand1=$DA I didn't write that. It was copied from some existing code template - as I never programmed anything in the standard kernel before.

 

Are you talking about flipping between two numbers? If so, the bB page has something about that:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#how_to_flip

Share this post


Link to post
Share on other sites

Are you talking about flipping between two numbers? If so, the bB page has something about that:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#how_to_flip

No, not flipping.

The pipe is Player0. Its center is the gap.

I needed a random number between 42 and 132 each pipe to move this center part by moving Player0y up / down.

Share this post


Link to post
Share on other sites

No, not flipping.

The pipe is Player0. Its center is the gap.

I needed a random number between 42 and 132 each pipe to move this center part by moving Player0y up / down.

 

If you want to keep it to just bB commands, you could use something like this:

 

   dim rand16 = z

   a = ((rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16)) + 42

Share this post


Link to post
Share on other sites

 

 

If you want to keep it to just bB commands, you could use something like this:

 

   dim rand16 = z

   a = ((rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16)) + 42

 

The ranged rand page will produce bB code.

 

Your code wont produce a uniform distribution

(it'll favor some numbers and not be very random)

 

 

 

Share this post


Link to post
Share on other sites

The ranged rand page will produce bB code.

 

Your code wont produce a uniform distribution

(it'll favor some numbers and not be very random)

Thanks. I just went there and tried it and made some test programs. There are some big differences. I did some primitive conversions to put 42 through 132 on the screen using pfpixel.

 

Test 1

This is "a = ((rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16)) + 42" without rand16:

 

test_random_code_div_16_without_rand16.bas.bin [That sucks!]

 

 

 

Test 2

This is "a = ((rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16) + (rand/16)) + 42" with rand16:

 

test_random_code_div_16_with_rand16.bas.bin [That also sucks!]

 

 

 

Test 3

This is "a = rand/2 : a = (a/4 + a)/32 + a + 42" from the web site and it ends up looking the same with or without rand16:

 

test_random_code_website_bb_code.bas.bin [Doesn't suck as much, but there are always holes.]

 

 

 

Test 4

This is asm code from the web site and it doesn't seem to matter if you use rand16:

 

test_random_code_website_asm_code.bas.bin [This is the best one. Everything fills up nicely.]

 

 

 

Test 5

This is "a = ((rand/128) + (rand/2) + (rand/64) + (rand/128)) + 42" which is a mix from the list on the bB page without rand16:

 

test_random_code_div_mix_without_rand16.bas.bin [Pattern city. Sucks!]

 

 

 

Test 6

This is "a = ((rand/128) + (rand/2) + (rand/64) + (rand/128)) + 42" which is a mix from the list on the bB page with rand16:

 

test_random_code_div_mix_with_rand16.bas.bin [Not bad, but not even close to being as good as the asm version.]

 

 

 

 

So the asm version from your web site is the clear winner. Could RevEng change rand to work more like the asm code on your web site?

  • Like 1

Share this post


Link to post
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.

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