Shadebobs demo 320x200x8bpp - question regarding vsync?
avsa242
Posts: 452
Hi guys,
Attached is a demo of a work-in-progress genericized version of @Rayman or @"Dave Hein" 's smartpin VGA driver (I've seen the same or similar VGA code in programs from both...please set me straight - would like to know who to properly attribute in the source - or is there someone else even?). I've mated with it a bitmap graphics library that I originated for use on the various OLED and LCD displays out there. One routine I've been wanting to draw using the Prop (1 or 2) for a looong time on any display type is Shadebobs - this has always been my favorite routine in the demo scene. Sorry to PNuters...this is written in FastSpin. There is however a binary in the archive that is set for vga base pin of 0 if for some reason you can't get ahold of FastSpin. It runs the P2 at 250MHz.
Now for my question: I also added a rudimentary WaitVSync() method in the driver, intended to be used to reduce flicker in methods that clear the display between every frame. This basically works, but has a downside that at my skill level, I can't quite figure out: a top portion of the display is invisible when using this method, and it tapers downwards the farther to the right on the screen. My first thought was maybe by the time the code that follows my checking of the vsync pin state has executed, too much time has gone by, but I'm not sure exactly. Anyone have any ideas?
Thanks!
Attached is a demo of a work-in-progress genericized version of @Rayman or @"Dave Hein" 's smartpin VGA driver (I've seen the same or similar VGA code in programs from both...please set me straight - would like to know who to properly attribute in the source - or is there someone else even?). I've mated with it a bitmap graphics library that I originated for use on the various OLED and LCD displays out there. One routine I've been wanting to draw using the Prop (1 or 2) for a looong time on any display type is Shadebobs - this has always been my favorite routine in the demo scene. Sorry to PNuters...this is written in FastSpin. There is however a binary in the archive that is set for vga base pin of 0 if for some reason you can't get ahold of FastSpin. It runs the P2 at 250MHz.
Now for my question: I also added a rudimentary WaitVSync() method in the driver, intended to be used to reduce flicker in methods that clear the display between every frame. This basically works, but has a downside that at my skill level, I can't quite figure out: a top portion of the display is invisible when using this method, and it tapers downwards the farther to the right on the screen. My first thought was maybe by the time the code that follows my checking of the vsync pin state has executed, too much time has gone by, but I'm not sure exactly. Anyone have any ideas?
Thanks!
Comments
at 320x200x8bpp you can double buffer. Have you tried that?
Check out my 90's 3D demo for an example of that.
Right after VSync it just copies the back buffer to the fore buffer. Or, maybe I was clever enough to just swap buffers, don't remember...
Some of the clock stuff looks like ozpropdev. I see my initials, so I hope I helped...
Who knows, I hope I have attribution where I should have... I try to, but maybe come up short sometimes...