Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

3dSen VR - 3D NES Emulator For Virtual Reality

Breathing new life into classic NES games by magically converting it into 3D and letting you play in VR · By geod

input lag related to new v-sync option

A topic by Carbaugh created Feb 14, 2017 Views: 538 Replies: 4
Viewing posts 1 to 4
(21 edits)

hi :) as of version 1.2.1 I am getting serious input lag even with just the mouse, in fullscreen mode. when I turn the new vsync option off, the lag is gone, but then I get really bad screen tearing. (the lag is more noticeable for me because I have a lot going on lol. I use ps4 controller, run in 1080p stereoscopic 3d with NVidia 3d vision on a 3dtv which is amazing by the way, and stereo sound on in the emulator--probably negligible, and i'm only on a GT640). I noticed, that when I disable 3dnes' vsync, and force vsync on in NVidia control panel, the image is perfect, and there is far less input lag, but the lag is still there control doesn't seem instant (even if triple buffering is also active, there's hardly any difference and lag is still there. but again, much better than the new vsync option in the emulator for me).

I have a theory as to why this is. in all previous versions of 3dnes, there there was seemingly zero input lag. I cleared my app data > loca low and registry settings and went back to version 1.1b1 and noticed that there is no option to set framerate. then I played a game, and realized why there's no input lag. based on experience with other emulators, i think that version 1.1b1 and all the previous versions, had some type of "variable framerate" because I noticed that while playing a game on the old version, it's almost like frame skipping is on and where I would have input lag in 1.2.1 at a steady 60fps, in 1.1b1 it just seems to skip frames here and there, with zero input lag on mouse and controller, and no frame tearing (without even having to mess with vsync options in nvidia control panel).

basically, for me, there was never any screen tearing in previous versions and there seemed to be some variable framerate or frameskipping happening which made my input lightning fast. while i like the option to have a steady 60 fps in the new version, something is happening to cause severe mouse and input lag in fullscreen mode even when a game isn't running, until I turn off vsync. and even then the input lag is still present (but not as bad). I would much prefer whatever vsync / variable framerate / frameskipping was going on before. just a few frames skipped sometimes, but mostly 60fps.

things that I would like to see implemented:

- bring back the variable frame rate, or frameskipping, and previous vsync behavior, or maybe have vsync disabled by default since it's causing input lag, so I don't have to disable it every time I open the emulator and go full screen or just have a way to save the option the way I set it even if I close the emulator
- same with stereo sound. I have to turn it on every time i open the emulator
- it would be cool to disable pan/zoom/rotate etc on the controller because I am obsessive compulsive and since there is no reset view to default options or button I just created a ds4windows profile that unbound my L/R 1/2 and triangle and circle buttons so the view stays perfectly centered at all times even if I press those buttons by accident. an option to disable camera rotation or 'reset view to default' would be sweet!
- an option to clone xinput d pad controls to analog sticks would be awesome! as of now I use joy2key to make this happen. sometimes it can makes games like final fantasy I on the world map feel more epic / comfortable. till you get to some UI/menu selection then d pad is preferable. it's awesome if both are active like they're doing in newer versions of espxe (even if it's not a dual shock game)
- an option to reset sprites/geometry? after using char, v cylinder, and h cylinder a couple times it seems to get corrupted unless I go back to unkown > and click apply twice, but then only unkown block and cube will look normal and char, v and h cylinder won't ever look how they're supposed to again until I start a whole new profile.
- auto layering can be nice, but sometimes it's too busy. disabling it helps, but it's not disabled completely and layers still jump around from foreground to background sometimes (just not as much).

thanks for all your hard work! love this :)

Thanks for your very detail feedback.

The root cause of input lag that you mentioned is because of the multi-thread switching since V1.1

I'm planing to re-implement video/sound/input handling in the next version to minimize the lag and give us an overall better user experience.

So let's wait for the next version release then :)

(1 edit)

nice! that makes sense. glad to hear about multi thread implementation because i have 8 a core cpu lol! i'll stick with 1.1b1 for gameplay for now then. and i'll make my .3dn profiles in 1.2.1. looking forward to the new version =)

It's not like that. Multi thread is for (too) early mobile porting preparation. For PC just one core is quite enough already :)

oooh. got it! ^~^b