Just Jeff Posted December 7, 2017 Share Posted December 7, 2017 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? 1 Quote Link to comment Share on other sites More sharing options...
ZylonBane Posted December 7, 2017 Share Posted December 7, 2017 Flicker is displaying a thing sometimes and then sometimes not. The possible ways to implement sometimes showing a thing and sometimes not showing a thing are virtually infinite. 1 Quote Link to comment Share on other sites More sharing options...
vidak Posted December 7, 2017 Share Posted December 7, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted December 7, 2017 Share Posted December 7, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
Just Jeff Posted December 8, 2017 Author Share Posted December 8, 2017 OK Thanks! Sounds like I can just figure it out myself then.. Though- I thought the 30Hz flicker was undetectable on CRTs and Stella emulator. Is that correct? Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted December 8, 2017 Share Posted December 8, 2017 No, you can clearly see 30Hz flicker. But it is not extremely annoying. 3 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted December 8, 2017 Share Posted December 8, 2017 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 1 Quote Link to comment Share on other sites More sharing options...
DirtyHairy Posted December 8, 2017 Share Posted December 8, 2017 (edited) 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 December 8, 2017 by DirtyHairy 2 Quote Link to comment Share on other sites More sharing options...
+stephena Posted December 8, 2017 Share Posted December 8, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted December 8, 2017 Share Posted December 8, 2017 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 1 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted December 8, 2017 Share Posted December 8, 2017 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. Just updated Quote Link to comment Share on other sites More sharing options...
ZylonBane Posted December 9, 2017 Share Posted December 9, 2017 full screen at 30 Hz is revolting, resulting in me not playing the game. Hey now, Ladybug technically uses full-screen flicker on the playfield. 1 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted December 9, 2017 Share Posted December 9, 2017 Hey now, Ladybug technically uses full-screen flicker on the playfield. Yep, which is why I seldom play it on hardware. Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted December 9, 2017 Share Posted December 9, 2017 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 1 Quote Link to comment Share on other sites More sharing options...
Just Jeff Posted December 11, 2017 Author Share Posted December 11, 2017 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 1 Quote Link to comment Share on other sites More sharing options...
Just Jeff Posted December 11, 2017 Author Share Posted December 11, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.