Tripple buffering glitch with Nvidia boards

Found a bug? Please report it, but remember to follow the bug reporting guidelines.
Missing a sane feature? Let us know!
But please do NOT request ports to other systems.

Moderator: ZSNES Mods

riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Tripple buffering glitch with Nvidia boards

Post by riboflavin »

Greetings!

It seems this glitch is already known, I read information about it earlier today from a Google search.

Anyway, I should have read that before I purchased a couple of Geforce 4 TIs (with the assumption that perhaps the extra power/refinement would fix the issue, since I was using Geforce 2 MXs). Well, um, opps. Good thing they weren't the latest FX product off the assembly line. This is 2007, so I only paid like 26 bucks.

So yeah, I was just wondering if anyone has had any issues... or maybe... um solutions? In any case I just wanted to renew interest in the topic if that was at all possible. Early geforces are a solid choice for a DOS gaming machine, this seems to be one of the few shortcommings. ZSNES runs full speed for everything I can throw at it with a PII400, but not with vsync, and that tripple buffering is maddeningly tempting since it looks so good, but give the screen a twitch fit ever minute or two.

Checkout the planetfall scene in Super Metroid. When you get out of your ship run around a lot (turn on a 16bit graphics mode so you can see the transparent rain layer). If you are running with triple buffering on with an nvidia card, you should see the screen twitch randomly. Almost any game should work tho.

I have two interesting things that might aid (?) in the conquering of this glitch. 1st off, the utility Fastvid for DOS seems to do nothing to help. Just though ya should know.

But the second is more interesting, I'm using Glauncher to launch zsnes, and it has a display option called "page flipping" which causes a glitch that behaves possibly exactly the same as zsnes's tripple buffering. The source is available for glaunch (it's a big program tho, and most of the libraries are hard to find, if anyone recompiles this... LET ME KNOW PLEASE!). Hope this might help somehow. Likewise if you need help setting up GLAUNCH, email me.

So yeah. Going to try a Voodoo Banshee and see if that helps. Too bad too, the Geforce 2 MX is a great DOS card for just about everything!

-Riboflavin
What if people were named like smurfs?
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

if your running zsnes in windows then edit the config file so the refresh rate is a multiple of 60hz for ntsc games or a multiple of 50hz for a pal game. (should fix your glitching problem with vsync/triple buffer.

then when playing set frameskip to 0.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

franpa wrote:if your running zsnes in windows then edit the config file so the refresh rate is a multiple of 60hz for ntsc games or a multiple of 50hz for a pal game. (should fix your glitching problem with vsync/triple buffer.

then when playing set frameskip to 0.
Somehow, I knew you would say something like that.
riboflavin wrote:Early geforces are a solid choice for a DOS gaming machine, this seems to be one of the few shortcommings.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

is there no force refresh rate option for the DOS version?
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Yeah, all running in DOS. Haven't seen a force refresh rate in the DOS version.

There's a huge amount of tweeks that can be done with Nvidia cards and triple buffering from within windows. I don't know if any of these settings carry over into the card after a power-off (to run DOS). I kinda don't think they would, but I haven't tried it to verify.

Matrox had BIOs updates for a G550 that fixed a few things. I am going to look into a BIOs update for this card, but Nvidia gaming cards don't seem to be built for the long haul, so I'm not holding my breath. I will post in this thread if I can get this to behave any differently.

-Riboflavin
What if people were named like smurfs?
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

franpa wrote:is there no force refresh rate option for the DOS version?
No. The only app that provided such functionality was like Scitech Display Doctor's utilities that made that possible. ZSNES never had a refresh option for DOS nor SDL.
riboflavin wrote:There's a huge amount of tweeks that can be done with Nvidia cards and triple buffering from within windows. I don't know if any of these settings carry over into the card after a power-off (to run DOS). I kinda don't think they would, but I haven't tried it to verify.
Unlikely. I don't think anyone can quite test your issue... we will see, but the likelihood we will find a solution is simply small.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

As far as testing the issue goes, I think all you need is a ZSNES dos setup with an NVIDIA card, probably any of them. It's not hard to duplicate as long as you have an NVIDIA card installed, in fact you can download a WIN98se boot disk and run ZSNES that way. The CPU speed/type doesn't seem to matter as far as the triple-buffer Nvidia flicker glitch.

If you look at the .986 entry in the change log on the link below, you can see that the ZSNES team is aware of this flicker glitch, but it doesn't seem to be conquered yet...

http://www.zsnes.com/index.php?page=features&skip=20

I don't have extremely high hopes for this getting discovered and fixed either, but I thought that maybe bringing it up might have a chance of being addressed in future versions.

If it does get fixed, I can't think of any reason why an Nvidia Geforce card isn't the perfect card for a DOS emulator setup with a Pentium 2. Native DOS games especially seem to love the Geforce.

-Riboflavin
What if people were named like smurfs?
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

riboflavin wrote:As far as testing the issue goes, I think all you need is a ZSNES dos setup with an NVIDIA card, probably any of them. It's not hard to duplicate as long as you have an NVIDIA card installed, in fact you can download a WIN98se boot disk and run ZSNES that way. The CPU speed/type doesn't seem to matter as far as the triple-buffer Nvidia flicker glitch.

If you look at the .986 entry in the change log on the link below, you can see that the ZSNES team is aware of this flicker glitch, but it doesn't seem to be conquered yet...

http://www.zsnes.com/index.php?page=features&skip=20

I don't have extremely high hopes for this getting discovered and fixed either, but I thought that maybe bringing it up might have a chance of being addressed in future versions.

If it does get fixed, I can't think of any reason why an Nvidia Geforce card isn't the perfect card for a DOS emulator setup with a Pentium 2. Native DOS games especially seem to love the Geforce.

-Riboflavin
I wouldn't know what the exact issue is.. but there are still comments in the code regarding the NVidia triple buffer issue. I'd say it is simply NVidia specific to be honest.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
tikbalang
Rookie
Posts: 18
Joined: Tue Oct 11, 2005 8:36 am
Contact:

Post by tikbalang »

i have that bug too. i turned off vsync and triple buffering and all is good. with frameskip 0, music in top gear and lambo challenge lags. i set it to auto (default). this is in dos. should i be getting a better performance with a p3 1ghz/128mb ram/geforce2 mx200 64mb?
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

I've had an Nvidia Geforce II for years and never run into this problem.
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
Gil_Hamilton
Buzzkill Gil
Posts: 4294
Joined: Wed Jan 12, 2005 7:14 pm

Post by Gil_Hamilton »

Deathlike2 wrote: I wouldn't know what the exact issue is.. but there are still comments in the code regarding the NVidia triple buffer issue. I'd say it is simply NVidia specific to be honest.
I believe it's a design issue in the entire GeForce family. At least 1-4.

It affects some Windows games too. Like the great and powerful Shogo.
Cyrus
Trooper
Posts: 480
Joined: Tue May 31, 2005 8:12 am
Location: Canada

Post by Cyrus »

Panzer88 wrote:I've had an Nvidia Geforce II for years and never run into this problem.
Ya... I had a GeForce 4 Ti4200 and I never ran into that problem either, odd.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

I hope DOS didn't hit you in the head.

DOS

DOS

DOS
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Yeah, seems to be something with the whole Geforce line, at least up to 4.

I've tried the following AGP cards, and they all demonstrate the effect:

Diamond Viper v550 TNT-based card 16mb
Nvidia Geforce2MX 32mb
Nvidia Geforce4Ti 4200 64mb (Asylum brand)
Nvidia Geforce4Ti 4200 128mb (Albatron brand "Medusa")

The older cards seem to be worse. The Diamond card flickers like crazy. The Medusa card is older than the Asylum card, but is clearly better built (expensive heat sinks, etc) and it shows the flicker very little... on an average of twice a minute in Super Metroid.

I'm wondering, has anyone tried a GeForce FX+? I'm considering picking up a cheap one online. So, if anyone has tried this card with ZSNES in DOS (with Triple Buffering), I'd appreciate any comments.
What if people were named like smurfs?
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

I doubt this would have been fixed in the FX series... I doubt an inquiry to NVidia would help either.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Errr... well by experiment, I can say yes and no.

I borrowed a Geforce FX 5200 128mb DDR AGP made by PNY. Cheap card, only 65 bucks new.

I almost jumped for joy. It took a full 3 minutes of play before the flicker glitch appeared in Super Metroid.

So yeah, still there, but very sudued. Very playable now, in fact.

The same glitch, once again for anyone who's interested, is also visable in Game Launch with Page Flipping enabled, but it too is also much less apparent with a GeForceFX. Still there, but barely. I know this is a front-end that has nothing to do with ZSNES (unless you use it to launch the games), but it's the only thing I've run across with a similar glitch.

Also, two other things I noticed. The glitch happens MUCH more often in 320x200 then 640x480 with the GeForceFX. Other Geforces were a toss-up. Seems to indicated that if Nvidia did anything to fix this bug, they must have concentrated on making improvements to 640x480x16bit mode much more than any other.

One other note is when the glitch is about to happen, it is hearlded by a "bubble" of framerate slowdown that lasts for a second or two. It's noticable, but not very apparent, and seens to dip down to 20fps or so for that duration, then it flickers, then things speed up again to 60fps.

Just wanted to report back. A GeforceFX is very overpowered for my Pentium 2 400mhz machine, but if that's what it takes to run ZSNES on it, it's worth it.
What if people were named like smurfs?
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Hmmm. After going at this issue now for a long time, I suppose I should mention what I've found with triple buffering and zsnes, and the various cards I've tried in DOS since maybe this info will be useful to someone, perhaps with one of those ATI arcade VGA cards from Ultimarc or something.

I've been through almost every model of AGP Nvidia Geforce card up to the 6200 LE in attempts to be rid of the flicker glitch, and now I've moved on to Ati cards which DO get rid of the glitch, but seem to require Triple Buffering to be enabled manually from the GUI.

Well, as the Geforce models go up, the flicker frequency goes down somewhat. Best results with the Geforce 5500 FX. There is still some flicker with the card in both 320x240x16 and 640x480x16 vesa 2 modes, but it's fairly infrequent (average of once every 2 minutes for most games maybe). Tolerable mostly, but jarring enough to bring one out of the gameplay experience.

The Geforce 6200 LE seems to be a step backward as far as the flicker goes. It happens more ofter than the FX cards I've tested.

This whole thing led me to try some ATi cards. I had access to a Radeon 7000 and Rage 128 Xpert Pro, both aging... but hey this is DOS here. Both cards function identical as far as ZSnes on this machine. Unlink Nvidia Geforce cards, these both handle triple buffering perfectly, the only exception is for some reasons I can't start the game with triple buffering enabled in the command-line or ZSNES config file.

What's up with this? Is this option broken for Ati cards or, um... I don't know why this is. I seem to remember starting Nvidia cards with the function on. Anyway, if it's enabled with the GUI during the game it seems to work great for both these Ati cards. Full frame-rate on a P2, etc.

So that's what I've seen here. I hope this information is useful to someone.

-Riboflavin
What if people were named like smurfs?
Kajuru
Regular
Posts: 253
Joined: Wed Oct 18, 2006 6:43 pm
Location: localhost

Post by Kajuru »

If, and only IF the card is Vesa 3 based, you can use VbeHZ to set refresh rates. Afaik, the maximum allowed is 130hz. Free DOS app
http://home.arcor.de/g.s/vbehz.htm
funkyass
"God"
Posts: 1128
Joined: Tue Jul 27, 2004 11:24 pm

Post by funkyass »

most video cards made this century are vesa 3 complaint.

all of them should.
Does [Kevin] Smith masturbate with steel wool too?

- Yes, but don’t change the subject.
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Facinating! I'll give this a shot.

This eliminates the Ati cards tho. Ati in their infinite wisdom didn't make Radeons or even Rage cards Vesa 3.0. Only Vesa 2.0. Surprised me. Irk.

:roll:

Anyway, I feel that this may be a method of solving the glitch if I monkey with the refresh rates enough. Thanks Kajuru!
What if people were named like smurfs?
Kajuru
Regular
Posts: 253
Joined: Wed Oct 18, 2006 6:43 pm
Location: localhost

Post by Kajuru »

There's a chance to activate it in ATI cards if they're not Vesa3: using univbe(not univbe32) to enable Vesa3, then Vbehz. I can't garantee it'll work, but it's worth a shot, since Scitech abandoned Sdd anyway(=free serial @ their site)

Coming to think about it, maybe even unicentr(included in sdd) can help. You should just take care when manipulating Hz, Hblank and h/vsync.
GO GO GO! :D
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

This utility has... dare I say it... solved the problem

My god Kajuru! You rock rock rock! This problem has been driving me nutz for months and

Crap! it just flickered. I swear someone is writing a sketch comedy about this!

Hehehe... really tho... this utility give a LOT of control over display modes that DOS just never had before. Wow.

And the flicker thing seems to be cut down to a very low level. Best results using a Geforce TI 4200 with 320x240x16 bit mode set to 60hz with vbehz utility. Flickers very little now.

Thanks for the help. Not completely gone, but less than ever. This is a step in the right direction.
What if people were named like smurfs?
Kajuru
Regular
Posts: 253
Joined: Wed Oct 18, 2006 6:43 pm
Location: localhost

Post by Kajuru »

That's ok, buddy 8)

If by chance you're using Sdd(unicentr.exe), try tweaking the hblank end, then "Ctrl + Arrow" it to see if the flicker is reduced. I've issues like this everytime I reinstall windows, and this solves MOST flickering probs. If the screen looks too messy or the monitor turns off, just press ESC until you're out of it.

BTW, did you try 70hz? Some of the lower resolutions need this instead of 60hz. Or you could try 640x480x16 at 60hz, that's supposed to have no flicker.
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

I wanted to hold off until I had a better understanding of how this VBEHZ program works, and I've had a good amount of time to tinker with it now so here it is...

It actually works pretty well! I've really never seen the SNES so vibrant on a computer monitor before.

So yes, the best settings seem to be 640x480x16bit. The *sigh* flicker glitch is still there with triple buffering on an Nvidia card, but seems easier to ignore now that the graphics are so much better in general with this utility.

Lowering the refresh rate to 60hz really makes black pixels truly black on my monitor. This itself is rather nice, and I didn't realize I was playing games in shades of dark grey until I saw this. Crisp. Also, making the game appear in 60hz is the closest thing to an SNES's real output signal. Very smooth scrolling.

I've increased the resolution to full-screen by specifying total number of pixels, so that means that ZSNES now is almost the full size of the monitor (whereas before it was something like 3/4 of the monitor area). That is also VERY nice.

So I totally recommend this utility... smoother movement at 60hz, full screen, and truly black pixels.

I still don't understand the flicker glitch tho.

Here's my setting for VBEHZ's 640x480 mode. If anyone is randomly reading this and trying to make ZSNES appear better in DOS, you owe it to yourself to try this program out with these settings. Mmmmm!

1 Horizontal Total in pixels: 680
2 Horizontal Sync, start: 644
3 Horizontal Syn, end: 670
4 Vertikal Total in pixels: 496
5 Vertikal Sync, start: 488
6 Vertikal Sync, end: 494
7 Flags: 0
8 Pixelclock in Hz: 20236800
9 Refresh rate in 0.01 Hz: 6000

(when you change option 9, VBEHZ calculates and suggests the value of 8 based on your total pixel count, took me awhile to figure this out)

So far, so good. I've spent a lot of time tweaking these settings (for framerate smoothness and centering the image) but haven't been able to get rid of the "random flicker" completely yet... although it seems to appear more often with odd pixelclocking. Hard to tell.

Also haven't applied SDD yet. But I thought I'd put these numbers out there to see if anyone has any ideas.
What if people were named like smurfs?
riboflavin
Rookie
Posts: 14
Joined: Wed Feb 07, 2007 7:50 am
Location: California

Post by riboflavin »

Hmm. Univbe doesn't seem to work with geforces.
What if people were named like smurfs?
Post Reply