ata4 / angrylion-rdp-plus

A low-level N64 video emulation plugin, based on the pixel-perfect angrylion RDP plugin with some improvements.
155 stars 25 forks source link

Frametime delivery with stable 60 VIs #110

Closed DaRkL3AD3R closed 3 years ago

DaRkL3AD3R commented 3 years ago

https://i.imgur.com/ksGnRLj.png

Is this normal for other users? Because it is causing my G-Sync monitor to have a heart attack and experience insane amounts of flickering as well as bad temporary burn in that happens within minutes and lasts several more. This does not happen with other plugins where frametimes are a much flatter line.

ata4 commented 3 years ago

I've also noticed flickering, but I thought it was because of a buggy support for my FreeSync screen. Looks like it's a more serious issue that I have to look into.

ata4 commented 3 years ago

After some experimentation, this is more of a emulator problem as far as I can tell. Project64 seems to refresh the screen at highly variable intervals, so the frame rate is very unstable. Flickering happens with other plugins as well, even with HLE. So I don't think it's something I can fix directly.

DaRkL3AD3R commented 3 years ago

I see. I think I may know a link to the problem though. The GlideN64 plugin let's you choose when to swap interval, on vertical interrupt (default and seemingly what ARDP+ does) which gives an NTSC 60hz signal but with very poor timing, or you can choose color buffer swaps which results in the emulator outputting frames at the game's actual framerate (eg Zelda = 20 fps, GoldenEye fluctuating from 7-30 fps etc) instead of the targeted fixed flat 60hz with tons of frametime variance.

Would it be possible for the plugin to have a test option to output at the actual framerate instead of the vertical interrupts intervals? I have a feeling the design of this plugin being LLE and trying to replicate the RSP's real output as close as possible won't allow it. But it would certainly help if it could.

ata4 commented 3 years ago

I've tried that as well and it didn't fix the issue, surprisingly. However, it still seems to be a good idea to have it as an option, since it reduces the overhead from the VI filter significantly.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.