Page 1 of 2

Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 4:18 am
by calima
Final Fantasy (1, US, NES) lags in most emulators on the world map. It doesn't lag in the inaccurate nesticle, but it's so annoying that's the only emulator I can play it in.

Did it also lag on hw? I can't find anything about this on google.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 5:29 am
by Quietust
If it lags in most newer emulators, it's almost guaranteed that it also lags on the real hardware.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 5:31 am
by calima
True, but I'd like to know from someone who has it (/flashcart).

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 5:49 am
by rainwarrior
What exactly do you mean by "lag" on the world map? Can you describe a way to reproduce the problem, and what you expect to see instead?

(I can run it on a flash cart, but I don't understand what I'm looking for in this case.)

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 8:15 am
by calima
Walk on the world map, it's occasionally not smooth. It happens more often when moving vertically than horizontally.

It's as if it randomly takes two frames instead of one.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 8:23 am
by mikejmoffitt
That sounds like a timing issue with an emulator synchronizing flipped frames with the monitor's vblank interval.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 8:39 am
by calima
Yeah, but I have vsync enabled in all emulators. Surely they don't all fail?

All emulators except nesticle failed years back, now that I tried them mednafen was smooth in addition to nesticle. So it could be vsync afterall, except nesticle cannot be vsynced, since it's a DOS app running in dosbox, and my dosbox build does not have GL support. Curious.

edit: also, other four-way scrolling ROMs do not have the same issue.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 12:01 pm
by DRW
To find out whether it's vsync or an actual lag inside the game, do the following:

Use fceux and go to "File", "Movie", "Record Movie".
Play the game until you encounter the lag.
Now replay the movie file. When you get to the lag, pause the emulator and advance the game frame by frame.

If you actually encounter that the game isn't moving in a specific frame, then you have a real lag in the game. In this case, you can post the input file here, so that people analyze it.
If the frame by frame advance doesn't show a lag, then it's something about the system, i.e. vsync etc.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 12:30 pm
by koitsu
calima wrote:Final Fantasy (1, US, NES) lags in most emulators on the world map. It doesn't lag in the inaccurate nesticle, but it's so annoying that's the only emulator I can play it in.

Did it also lag on hw? I can't find anything about this on google.
I'll let you know in a few days.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 3:01 pm
by dougeff
I see no lag on hardware. It scrolls smoothly in all directions.

I suspect that your computer has too much crap running in the background, and nesticle is the least resource demanding emulator, so that's why it's different.

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 3:32 pm
by Sour
For what it's worth, I did a quick test on Mesen and only see anything that could be called "lag" when vsync is off.
Not to say Mesen's vsync implementation is perfect, I'd imagine it doesn't work as expected on some computers (which may very well be your case)

Re: Did Final Fantasy lag on hw?

Posted: Wed Jan 04, 2017 3:33 pm
by koitsu
Accurate and smooth A/V synchronisation in anything on Windows is a shit show. You can ask any of the emulator authors here. The amount of variance in behaviour is absolutely mindboggling, because it's all based on a tremendous number of factors. For example, I see occasional "glitches" in many emulators (the behaviour varies slightly), including MAME, since the introduction of a sound card I use (Asus Xonar DG) that has crappy drivers -- and I use that card because my on-board Realtek audio (a company I want to see burn in hell) has tons and tons of interference/bus noise that the rear-panel microphone port picks up -- but actual audio playback is good (those glitches don't happen). This is further compounded by use of Windows 7 (I had several emulators that worked beautifully smooth on Windows XP, ex. Nestopia, but then began occasionally having problems once I moved to 7). I've said enough, because I could go on and on for days about this subject, all the way down to talking about event timers and SpeedStep/clock frequency throttling.

Back in the "DOS days", none of this was a problem because the OS (for lack of better term) "sat closer" to the hardware and nothing else was running simultaneously. For example, accurate/flawless Vsync was possible back then -- the CPU only ran what you had actively launched. For Vsync, you could literally do this without any worry of "other stuff" going on:

Code: Select all

mov dx, 03dah
Loop1:
  in al, dx
  and al, 08h
  jnz Loop1
Loop2:
  in al, dx
  and al, 08h
  jz Loop2
...and at the end of that, you'd be in VBlank reliably every time. No tearing, no nonsense.

With the introduction of multitasking OSes (not task-switching, but multitasking) like Windows NT and later, and graphical layers like DirectX, and later GPU drivers and so on, everything became abstracted. You now have layers upon layers upon layers of things that all "connect", taking away from the ability for a program to truly do something as simple as, say, wait for Vsync with the same degree of accuracy as back in the early 90s -- you no longer have ANY idea of how much time _really_ is left for use in VBlank by your program. Now introduce hilarious kludges (I consider them a kludge) like nVidia G-SYNC and AMD FreeSync, requiring special "gamer monitors", and have their own complexities/nuances (think about windowed mode applications and how that's going to work). On the audio layer, you now got USB audio bits (USB DACs), sound cards still, and let's not forget weird things like HDMI audio (and HDCP on top of that, whee!) -- keeping everything "synchronised" is a total nightmare. At least on the graphical end of things, are you ready for the irony? Here it comes:

With the introduction of Vulkan, it seems that we're circling back to the 90s. Someone at the Khronos Group had had enough of this bullshit, it seems. Vulkan is an incredibly tiny API (last I looked, around 1.6MBytes) where, from what a colleague of mine who does 3D engines for commercial games told me, basically just says "here's a piece of raw memory that correlates with the framebuffer on the GPU. Do whatever you want with it. If you screw it up and crash the machine, it's your fault. Talk to the hardware directly (or very close to it)".

Hopefully I'll be dead by the time humans come full circle and realise the importance of KISS principle.

Re: Did Final Fantasy lag on hw?

Posted: Thu Jan 05, 2017 5:50 am
by calima
Thanks dougeff, it's the emulators then. FWIW I'm on Linux, on a Phenom II x6, with very little other things running (browser, music).

Koitsu, I agree on Vulkan. It's a tremendous increase in complexity only for a small cpu use decrease. Not worth it for me, even if I had any hw able to run it.

Re: Did Final Fantasy lag on hw?

Posted: Thu Jan 05, 2017 7:48 am
by koitsu
calima wrote:Koitsu, I agree on Vulkan. It's a tremendous increase in complexity only for a small cpu use decrease. Not worth it for me, even if I had any hw able to run it.
Sorry, I'm not following? I think I misunderstand your comment. Mine was in support of Vulkan; I'm saying it's an example of how people are tired of all the layers and abstraction in Windows getting in the way (see previous post for examples), and brings things back closer to how they were in the 90s. It's a positive, if you ask me.

Re: Did Final Fantasy lag on hw?

Posted: Thu Jan 05, 2017 8:38 am
by calima
Indeed, I misread.