Jump to content
IGNORED

Flicker


Just Jeff
 Share

Recommended Posts

I think of it a little bit as cheating - instead of always drawing everything you need to on the scanline, you just ... don't draw certain things.

 

SpiceWare's semi tutorial "Stay Frosty" on his blog has flickering sprites. They're little balls of fire, so they look natural while flickering.

 

An NTSC Atari will draw one frame every 1/60th of a second, so flickering is some smaller amount of presence on the screen. Instead of 60Hz, the frequency of flickering would be less, like 30Hz.

  • Like 1
Link to comment
Share on other sites

An easy way to set this up would be to start with a simple program which displays a sprite at any coordinate you specify. So the program is drawing one sprite at (30,40) for example. Then modify it so that it changes the position of the sprite every frame. On the even frames it remains located at (30,40) and on the odd frames it moves to (120,70). Now there appears to be two sprites located at (30,40) and (120,70), but they flicker because they are only drawn half the time. Then you need to track the location of each object separately and choose which location, graphics, colors etc to display for each frame.

  • Like 1
Link to comment
Share on other sites

The 30hz flicker looks fixed on some versions of Stella, fixed even in some modern LCD TV, but it will be somewhat notable in old CRT though not disturbing.

 

Here is a sample program I've wrote https://github.com/nanochess/Atomchess-6502

 

 

Stella >= 5.0 contains a new POV/phosphor simulation that will **not** remove flicker entirely.

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

The 30hz flicker looks fixed on some versions of Stella, fixed even in some modern LCD TV, but it will be somewhat notable in old CRT though not disturbing.

 

Here is a sample program I've wrote https://github.com/nanochess/Atomchess-6502

 

Not related to the question at hand, but I just looked at your github page, and it contains an old link for Stella. Please update to https://stella-emu.github.io.

  • Like 1
Link to comment
Share on other sites

Yep, flicker is noticeable and different people have a different tolerance level. For me:

  • small objects at 30 Hz (and even at 20 Hz) is OK
  • large objects (like the boss in Stay Frosty 2) at 30 Hz is annoying, if kept to a minimum I'll play the game
  • full screen at 30 Hz is revolting, resulting in me not playing the game.
The use of flicker blinds, as seen in the 32 character text display, can help. That takes full screen objects from revolting to just annoying.

 

Flicker blind (line-by-line player shifting) for even frames:

1_2_3_4_5_6_
_1_2_3_4_5_6
1_2_3_4_5_6_
_1_2_3_4_5_6
...
1_2_3_4_5_6_
_1_2_3_4_5_6

for odd frames:

_1_2_3_4_5_6
1_2_3_4_5_6_
_1_2_3_4_5_6
1_2_3_4_5_6_
...
_1_2_3_4_5_6
1_2_3_4_5_6_

In contrast the use of flicker columns does not help, if the 32 character text display was done using this method I wouldn't play the game that used it.

 

Flicker columns (no player shifting) for even frames:

1_2_3_4_5_6_
1_2_3_4_5_6_
1_2_3_4_5_6_
1_2_3_4_5_6_
...
1_2_3_4_5_6_
1_2_3_4_5_6_

for odd frames:

_1_2_3_4_5_6
_1_2_3_4_5_6
_1_2_3_4_5_6
_1_2_3_4_5_6
...
_1_2_3_4_5_6
_1_2_3_4_5_6
  • Like 1
Link to comment
Share on other sites

Good Evening,

 

I'd like to play around with flicker a little bit but I've never done it. Is it as simple as writing 2 kernels and branching to one or the other or is it more complicated than that?

 

Here are two examples of full screen flicker at 30 HZ and 60 HZ:

 

http://javatari.org/?ROM=http://relationalframework.com/StarBlitz_double_fun.bin

 

http://javatari.org/?ROM=http://relationalframework.com/Defender_III_v1.bin

 

It's interesting the 60 HZ example appears to flicker more because the frame rate of the animation does not match the HZ; both games run at 30 FPS of full motion video.

 

With the first game the player can toggle back and forth between 60 HZ and 30 HZ with the BW switch during play, here's the source if you want to take a look :)

  • Like 1
Link to comment
Share on other sites

OK Thanks.. I put together this little Hello World (attached) to give it a look and yeah its a little disappointing. I tried it on the Harmony too. I'm going to reconsider the design of s game I'm thinking of working on. It will probably still have some flicker but just a little bit- probably less than 5% of the time.

 

Thanks again!

HW.bin

  • Like 1
Link to comment
Share on other sites

Yep, flicker is noticeable and different people have a different tolerance level. For me:

  • small objects at 30 Hz (and even at 20 Hz) is OK
  • large objects (like the boss in Stay Frosty 2) at 30 Hz is annoying, if kept to a minimum I'll play the game
  • full screen at 30 Hz is revolting, resulting in me not playing the game.
The use of flicker blinds, as seen in the 32 character text display, can help. That takes full screen objects from revolting to just annoying.

 

Flicker blind (line-by-line player shifting) for even frames:

1_2_3_4_5_6_
_1_2_3_4_5_6
1_2_3_4_5_6_
_1_2_3_4_5_6
...
1_2_3_4_5_6_
_1_2_3_4_5_6

for odd frames:

_1_2_3_4_5_6
1_2_3_4_5_6_
_1_2_3_4_5_6
1_2_3_4_5_6_
...
_1_2_3_4_5_6
1_2_3_4_5_6_

In contrast the use of flicker columns does not help, if the 32 character text display was done using this method I wouldn't play the game that used it.

 

Flicker columns (no player shifting) for even frames:

1_2_3_4_5_6_
1_2_3_4_5_6_
1_2_3_4_5_6_
1_2_3_4_5_6_
...
1_2_3_4_5_6_
1_2_3_4_5_6_

for odd frames:

_1_2_3_4_5_6
_1_2_3_4_5_6
_1_2_3_4_5_6
_1_2_3_4_5_6
...
_1_2_3_4_5_6
_1_2_3_4_5_6

OK Thanks.. It took me a few reads to get this. Its a 96 pixel display- right? I think I'll be able to stick to the small objects at 30Hz, and use it only occasionally.

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...