Skip navigation
NintendoAge
Welcome, Guest! Please Login or Join
Loading...

"Console-perfect" NES emulation It's 2014. Why is this so hard?

Sep 30, 2014 at 2:09:49 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
"console-perfect" NES emulation

It's 2014. Why is this so hard?

So, I've basically come full circle and gone from playing emulators to playing on real hardware back to playing emulators, since I no longer have room for my massive 32" Sony CRT after moving to a new place.

I've been expirementing with emulators and have noticed that NES emulation is still in a pretty sorry state for 2014. I guess I didn't notice all these problems until after I started playing on a real CRT again. I've tried a number of emulators and I either had to deal with input lag, screen tearing, compatibility issues, or accuracy/timing problems or unable to run fullscreen without encountering said issues. No single emulator I tried was anywhere near "console perfect." I mean, seriously? Why is is that hard to get perfect NES emulation on the level of, say, ZSNES for the SNES (a 10+ year old program)?

Then I found retroarch, and acheived NES emulation Nirvana. The problem with retroarch is that the interface is total garbage and very unintuitive. I had to play around with settings more or less at random to get the ideal configuration but when I finally did it was all worth it.

Here's what I did to get a "console perfect" experience using retroarch:

-first of all, use z and x for cancel and accept. It took me forever to figure this out and I thought the program was broken at first. Then you can configure your controller and use it to navigate the GUI.

-First, you have to set the aspect ratio manually in the config file using notepad. Look for video_aspect_ratio and input "1.143" This is the correct ratio for the NES and it isn't selectable via the GUI options. AFAIK, no emulator has the correct NES aspect ratio selectable as a regular option. This is also the ratio that the SNES uses; its 8:7 to be exact.

-in the config file set video_refresh_rate to your monitor's fps. You can find out by going into your graphics card control panel. If you're using vsync I don't think this matters; I just left it at the default "59.95"

-under video settings I did the following:

-set hard gpu sync off. Only turn on if you have a fast cpu and good graphics card, and set to 0 or 1 frames. Hard gpu sync at 0 frames will result in the least input lag possible on Windows.

-set vsync on. set vsync swap interval to 1.

-"integer scale" set to off

-"aspect ratio" set to Custom.

-"Custom Ratio" left blank

-"toggle fullscreen" and press accept to get fullscreen.

-"Rotation": normal

-"Black frame insertion". If you have a 120hz monitor set to on and it will replicate the screen flicker of a CRT.

-"Threaded driver": leave this off.
 
-"Windowed scale": doesn't matter if in fullscreen, leave at 3x

-"Crop overscan": off. Some games display information in the overscan, so leave it off.

-"estimated monitor FPS": leave this alone. You're supposed to be able to sync the video refresh rate to your exact monitor fps using this but I don't think it works yet.

Under "shader options" I did the following:

default filter: nearest
shader passes: set to 1
shader #0: find "scanline.cg" somewhere in the "shaders" directory
shader #0 filter: don't care
shader #0 scale: don't care
"apply changes"

Another excellent shader is "crt-easymode.cg," but you need to download it from libreto github. The shader options are nuts and you can do some awesome stuff if you have a powerful computer.

Everything else should be pretty self-explanatory. Enjoy.
     

-------------------------
My backlog / games completed
 


Edited: 10/15/2014 at 12:39 AM by PatrickM.

Sep 30, 2014 at 2:14:49 AM
Viper0hr (81)
avatar
(Ryan R) < Ridley Wrangler >
Posts: 2718 - Joined: 04/30/2013
Florida
Profile
Everdrive. All the usefulness of Emulators, and the quality of a cart (If you do it right)

Sep 30, 2014 at 2:18:42 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: Viper0hr

Everdrive. All the usefulness of Emulators, and the quality of a cart (If you do it right)



What is this everdrive you speak of? I'm looking at it but I'm confused.

BTW, I have Ogre Battle but the condition is a little crappy, PM if interested.

-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 02:19 AM by PatrickM.

Sep 30, 2014 at 2:21:50 AM
Viper0hr (81)
avatar
(Ryan R) < Ridley Wrangler >
Posts: 2718 - Joined: 04/30/2013
Florida
Profile
Originally posted by: PatrickM.

Originally posted by: Viper0hr

Everdrive. All the usefulness of Emulators, and the quality of a cart (If you do it right)



What is this everdrive you speak of? I'm looking at it but I'm confused.

BTW, I have Ogre Battle but the condition is a little crappy, PM if interested.
http://krikzz.com/...

Bassicly you put roms on an sd card, the sd card into the board, then the board goes into a shell and you play it on your console. Runs pretty well, I so far have not had any lag issues or anything like that.



Sep 30, 2014 at 2:29:03 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: Viper0hr

Originally posted by: PatrickM.

Originally posted by: Viper0hr

Everdrive. All the usefulness of Emulators, and the quality of a cart (If you do it right)



What is this everdrive you speak of? I'm looking at it but I'm confused.

BTW, I have Ogre Battle but the condition is a little crappy, PM if interested.
http://krikzz.com/

Bassicly you put roms on an sd card, the sd card into the board, then the board goes into a shell and you play it on your console. Runs pretty well, I so far have not had any lag issues or anything like that.

 

The problem there is that I do not have room for a big CRT, like I said. I hate the look of SD consoles on an HDTV.

Which reminds me, the shader options! Sweet jesus the shader options. There's like 100 of them by default included with retroarch. To just get simple scanlines, do the following:

under "shader options" in the GUI:
default filter: linear
shader passes: set to 1
shader #0: find "scanline.cg" somewhere in the "shaders" directory
shader #0 filter: don't care
shader #0 scale: don't care

Using this, I swear games look better than they did on my Sony Trinitron, once I got the colors on my monitor set right.





-------------------------
My backlog / games completed
 

Sep 30, 2014 at 3:00:39 AM
pegboy (44)
avatar
< Bowser >
Posts: 5899 - Joined: 07/18/2012
Washington
Profile
You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

Sep 30, 2014 at 3:11:02 AM
Guntz (115)
avatar
< Master Higgins >
Posts: 8279 - Joined: 05/07/2011
Canada
Profile
Console perfect emulation of any console, even one as old as the NES, is difficult because perfect accuracy requires transistor level simulation. That takes an insane amount of CPU power to process at a speed fast enough for playing. A good example is DICE. Here's a quote from a good article on accurate emulation:

http://arstechnica.com/gaming/201...
http://boingboing.net/2014/02/25/...

"Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."

Now consider the fact that the NES has a CPU, a graphics chip (called the PPU), SRAM and a near infinite assortment of discrete logic and ASIC-based mapping hardware built into the games. If a perfect simulation of Pong could only run at about 5 to 10fps a few years ago, a game that has no CPU at all, imagine how much modern PC hardware would be required for a transistor accurate NES emulator. Don't even bother trying to factor the RetroN5 into this either, such emulator box consoles use very low end embedded hardware which is very slow. That's nothing compared to top of the line desktop PC hardware, which struggles to play Pong, much less a perfect NES emulator.

The reason why we've had playable console emulators as old as Nesticle is because they approximate and generalize the interpretation of the original hardware. It would be like taking this long winded explanation and summarizing it as "emulation bad, real hardware good". It's sort of the same but there's lots of stuff lost in translation. That is exactly how emulators like ZSNES or Nestopia work. You may have an emulator fast enough to play with, but if you've ever tried SuperFX games on ZSNES, you'll see just how awful an approximation can be (aka the games run way too fast, causing cutscenes and time sensitive functions to break).

Long story short, perfect emulation of any console with a CPU, no matter how simple, is decades away. We won't be seeing a perfect NES emulator for a long time.

Footnote: I realize that "almost perfect, nobody will notice" emulation is far easier to do with a CPU-based console. The point still stands that the NES in particular is an insanely vast console. Complete and perfect emulation is mythical currently.


Edited: 09/30/2014 at 03:15 AM by Guntz

Sep 30, 2014 at 3:24:03 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: Guntz

Console perfect emulation of any console, even one as old as the NES, is difficult because perfect accuracy requires transistor level simulation. That takes an insane amount of CPU power to process at a speed fast enough for playing. A good example is DICE. Here's a quote from a good article on accurate emulation:

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-o...
http://boingboing.net/2014/02/25/dice-emulator-for-hardwired...

"Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."

Now consider the fact that the NES has a CPU, a graphics chip (called the PPU), SRAM and a near infinite assortment of discrete logic and ASIC-based mapping hardware built into the games. If a perfect simulation of Pong could only run at about 5 to 10fps a few years ago, a game that has no CPU at all, imagine how much modern PC hardware would be required for a transistor accurate NES emulator. Don't even bother trying to factor the RetroN5 into this either, such emulator box consoles use very low end embedded hardware which is very slow. That's nothing compared to top of the line desktop PC hardware, which struggles to play Pong, much less a perfect NES emulator.

The reason why we've had playable console emulators as old as Nesticle is because they approximate and generalize the interpretation of the original hardware. It would be like taking this long winded explanation and summarizing it as "emulation bad, real hardware good". It's sort of the same but there's lots of stuff lost in translation. That is exactly how emulators like ZSNES or Nestopia work. You may have an emulator fast enough to play with, but if you've ever tried SuperFX games on ZSNES, you'll see just how awful an approximation can be (aka the games run way too fast, causing cutscenes and time sensitive functions to break).

Long story short, perfect emulation of any console with a CPU, no matter how simple, is decades away. We won't be seeing a perfect NES emulator for a long time.

Footnote: I realize that "almost perfect, nobody will notice" emulation is far easier to do with a CPU-based console. The point still stands that the NES in particular is an insanely vast console. Complete and perfect emulation is mythical currently.

That's a very informative reply, thanks!

That's why I put "console perfect" in quotes; it's possible to get things running so that no one could actually notice the difference vs. a real NES. Although even doing that still takes a lot of effort! I guess replicating hardware with software is just inherently a very difficult thing to do.


-------------------------
My backlog / games completed
 

Sep 30, 2014 at 3:24:17 AM
Kosmic StarDust (44)
avatar
(Alita Jean) < Master Higgins >
Posts: 9158 - Joined: 09/10/2011
Louisiana
Profile
Wait for Bunnyboy's HDMI NES?

Also, is there no reason a cycle accurate emulator can't be achieved with multiple cores? Consoles have multiple chips, you know. CPUs have multiple cores so use them. 64-bits have wider bus which can be used for more things. One thread for the CPU, one for the PPU, one for the bus, and one for the memory mapper. Modern CPUs often have large enough cache to fit the entire program plus console RAM plus ROM inside the CPU, so with intelligent ASM coding and minimal use of background resources, the frequency of cache misses resulting in fetching data from slower RAM could be kept to a minimum.

-------------------------
~From the Nintendo/Atari addict formerly known as StarDust4Ever...

Sep 30, 2014 at 3:31:42 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: Guntz

Console perfect emulation of any console, even one as old as the NES, is difficult because perfect accuracy requires transistor level simulation. That takes an insane amount of CPU power to process at a speed fast enough for playing. A good example is DICE. Here's a quote from a good article on accurate emulation:

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-o...
http://boingboing.net/2014/02/25/dice-emulator-for-hardwired...

"Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."

Now consider the fact that the NES has a CPU, a graphics chip (called the PPU), SRAM and a near infinite assortment of discrete logic and ASIC-based mapping hardware built into the games. If a perfect simulation of Pong could only run at about 5 to 10fps a few years ago, a game that has no CPU at all, imagine how much modern PC hardware would be required for a transistor accurate NES emulator. Don't even bother trying to factor the RetroN5 into this either, such emulator box consoles use very low end embedded hardware which is very slow. That's nothing compared to top of the line desktop PC hardware, which struggles to play Pong, much less a perfect NES emulator.

The reason why we've had playable console emulators as old as Nesticle is because they approximate and generalize the interpretation of the original hardware. It would be like taking this long winded explanation and summarizing it as "emulation bad, real hardware good". It's sort of the same but there's lots of stuff lost in translation. That is exactly how emulators like ZSNES or Nestopia work. You may have an emulator fast enough to play with, but if you've ever tried SuperFX games on ZSNES, you'll see just how awful an approximation can be (aka the games run way too fast, causing cutscenes and time sensitive functions to break).

Long story short, perfect emulation of any console with a CPU, no matter how simple, is decades away. We won't be seeing a perfect NES emulator for a long time.

Footnote: I realize that "almost perfect, nobody will notice" emulation is far easier to do with a CPU-based console. The point still stands that the NES in particular is an insanely vast console. Complete and perfect emulation is mythical currently.

Also, somewhat random quesiton, but have you tried SNES 9X EX Plus Alpha? I get near perfect Super FX emulation with that.

-------------------------
My backlog / games completed
 

Sep 30, 2014 at 3:34:41 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: pegboy

You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

I seriously considered it but I wouldn't want to go smaller than 19" and I don't even have space for that. I have a tiny desk with a small flatscreen on it and I would have no desk space otherwise.

For now, emulators are my only option. Honestly the way I have things configured it looks and plays awesome IMO, and I'm very picky about such things.

Plus, there's netplay!

-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 03:38 AM by PatrickM.

Sep 30, 2014 at 3:36:54 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: stardust4ever

Wait for Bunnyboy's HDMI NES?

Also, is there no reason a cycle accurate emulator can't be achieved with multiple cores? Consoles have multiple chips, you know. CPUs have multiple cores so use them. 64-bits have wider bus which can be used for more things. One thread for the CPU, one for the PPU, one for the bus, and one for the memory mapper. Modern CPUs often have large enough cache to fit the entire program plus console RAM plus ROM inside the CPU, so with intelligent ASM coding and minimal use of background resources, the frequency of cache misses resulting in fetching data from slower RAM could be kept to a minimum.
I can't wait any more, but I will probably  definitely get one once it's available



-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 04:14 AM by PatrickM.

Sep 30, 2014 at 3:49:56 AM
Guntz (115)
avatar
< Master Higgins >
Posts: 8279 - Joined: 05/07/2011
Canada
Profile
Originally posted by: stardust4ever

Wait for Bunnyboy's HDMI NES?

Also, is there no reason a cycle accurate emulator can't be achieved with multiple cores? Consoles have multiple chips, you know. CPUs have multiple cores so use them. 64-bits have wider bus which can be used for more things. One thread for the CPU, one for the PPU, one for the bus, and one for the memory mapper. Modern CPUs often have large enough cache to fit the entire program plus console RAM plus ROM inside the CPU, so with intelligent ASM coding and minimal use of background resources, the frequency of cache misses resulting in fetching data from slower RAM could be kept to a minimum.

I love that one phrase. "Bunnyboy's HDMI NES". I love it because it clones the NES using an FPGA. It is not software emulation in any way. It is like your usual single chip clone console, like the Genesis 3 or FC Twin or Generation Nex. The big difference with an FPGA is it can be "programmed" by the "end user", rather than pay thousands of dollars to get an equivalent ASIC fabricated and is never changeable in any way. By programmed I mean the FPGA is configured to act like an NOAC, but with perfect everything. By end user I mean bunnyboy does the configuration and then ships out the fresh new HDMI NES.

Moreover though, I love that phrase because it means cloning is still alive. An NOAC, no matter how inaccurate, is still a cycle accurate clone of the NES. Same with Genesis and SNES clones. Same with the HDMI NES. I know it's hard to grasp, but imagine if you took a big CPU-like chip and it contained a 2A03 (CPU), 2C02 (PPU), SRAM for the 2A03 and 2C02, any other miscellaneous logic and sometimes video encoding and audio mixing. All this is still pure hardware and is cycle accurate, even if seldom used functions are missing or if the audio section of the 2A03 got butchered in the transition from discrete 2A03 to merged into one big chip.

If we keep hardware clones alive, it means we can continue to enjoy our cycle accurate NES gaming for many years to come, without having to wait for PC hardware to be fast enough to re-create it all and without the RetroN5 to water it all down.

Originally posted by: PatrickM.

Also, somewhat random quesiton, but have you tried SNES 9X EX Plus Alpha? I get near perfect Super FX emulation with that.

Never heard of it. Is it one of those Android emulators? The most I've tried is BSNES (0.47 I think) and SuperFX emulation is too slow for my main desktop PC.

Doesn't matter much to me though, I have cartridges of Star Fox, Star Fox 2 and Stunt Race FX. I'm all set.


Edited: 09/30/2014 at 03:50 AM by Guntz

Sep 30, 2014 at 4:12:37 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: Guntz

Console perfect emulation of any console, even one as old as the NES, is difficult because perfect accuracy requires transistor level simulation. That takes an insane amount of CPU power to process at a speed fast enough for playing. A good example is DICE. Here's a quote from a good article on accurate emulation:

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-o...
http://boingboing.net/2014/02/25/dice-emulator-for-hardwired...

"Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."

Now consider the fact that the NES has a CPU, a graphics chip (called the PPU), SRAM and a near infinite assortment of discrete logic and ASIC-based mapping hardware built into the games. If a perfect simulation of Pong could only run at about 5 to 10fps a few years ago, a game that has no CPU at all, imagine how much modern PC hardware would be required for a transistor accurate NES emulator. Don't even bother trying to factor the RetroN5 into this either, such emulator box consoles use very low end embedded hardware which is very slow. That's nothing compared to top of the line desktop PC hardware, which struggles to play Pong, much less a perfect NES emulator.

The reason why we've had playable console emulators as old as Nesticle is because they approximate and generalize the interpretation of the original hardware. It would be like taking this long winded explanation and summarizing it as "emulation bad, real hardware good". It's sort of the same but there's lots of stuff lost in translation. That is exactly how emulators like ZSNES or Nestopia work. You may have an emulator fast enough to play with, but if you've ever tried SuperFX games on ZSNES, you'll see just how awful an approximation can be (aka the games run way too fast, causing cutscenes and time sensitive functions to break).

Long story short, perfect emulation of any console with a CPU, no matter how simple, is decades away. We won't be seeing a perfect NES emulator for a long time.

Footnote: I realize that "almost perfect, nobody will notice" emulation is far easier to do with a CPU-based console. The point still stands that the NES in particular is an insanely vast console. Complete and perfect emulation is mythical currently.
Also, just to reiterate, I'm not asking why NES emulation isn't perfect, but why it isn't yet "perfect." Why hasn't it acheived what (for example) ZSNES acheived with the SNES more than a decade ago?

I've used all the popular NES emulators and all had problems with vsync or input lag or some other BS. Retroarch using the nestopia core and the listed settings solved all these issues. I think it's hard gpu sync that makes all the difference, but that's just a guess because I haven't seen that as an option in any standalone NES emulators including nestopia by itself. Come to think of it, I don't think ZSNES had it... now I'm really confused.


-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 04:24 AM by PatrickM.

Sep 30, 2014 at 4:45:17 AM
Guntz (115)
avatar
< Master Higgins >
Posts: 8279 - Joined: 05/07/2011
Canada
Profile
NES isn't perfect yet because consumer PC hardware hasn't become fast enough to compute a perfect emulator. Even when we do, someone, or some team of people, have to code that emulator into existence.

I don't know why you keep referencing ZSNES as a "perfect" emulator. It can't even get the SPC700 right, so many games have broken sound in ZSNES. It's the SNES equivalent of Nesticle and UltraHLE. BSNES (aka Higan, wtf does that mean) is a far better choice.

Sep 30, 2014 at 7:56:14 AM
arch_8ngel (68)
avatar
(Nathan ?) < Mario >
Posts: 35263 - Joined: 06/12/2007
Virginia
Profile
Originally posted by: PatrickM.

Originally posted by: pegboy

You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

I seriously considered it but I wouldn't want to go smaller than 19" and I don't even have space for that. I have a tiny desk with a small flatscreen on it and I would have no desk space otherwise.

For now, emulators are my only option. Honestly the way I have things configured it looks and plays awesome IMO, and I'm very picky about such things.

Plus, there's netplay!

This may also be a significant factor in why you are finding Adventure Island to be so frustrating.

Latency of the emulator, latency from the USB controls, latency from the LCD screen.
It all adds up in a game like that versus real hardware and a CRT.


-------------------------
 

Sep 30, 2014 at 9:31:23 AM
django333 (25)
avatar
< Eggplant Wizard >
Posts: 457 - Joined: 04/05/2013
North Carolina
Profile
You could use SCART to HDMI to get a good picture on an HD television.

-------------------------
All life begins with Nu and ends with Nu...
This is the truth!
This is my belief! 
...at least for now.
 

Sep 30, 2014 at 9:36:01 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: arch_8ngel

Originally posted by: PatrickM.

Originally posted by: pegboy

You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

I seriously considered it but I wouldn't want to go smaller than 19" and I don't even have space for that. I have a tiny desk with a small flatscreen on it and I would have no desk space otherwise.

For now, emulators are my only option. Honestly the way I have things configured it looks and plays awesome IMO, and I'm very picky about such things.

Plus, there's netplay!

This may also be a significant factor in why you are finding Adventure Island to be so frustrating.

Latency of the emulator, latency from the USB controls, latency from the LCD screen.
It all adds up in a game like that versus real hardware and a CRT.






There is no detectable lag with the posted settings, I've played super mario bros enough to be able to immediately recognize it and I'm very sensitive to lag.

I'm stumped as to why NES emulation isn't to the standard that SNES emulation achieved a decade ago. It can't be a more complex system.

Guntz: I can deal with the occasional audio hiccup. What I don't get is why I can't run games in full screen mode with no input lag and no screen tearing, with good accuracy and timing (recognizing that it will never be perfect). We've been able to do this with SNES emulators for 10+ years now. Nestopia would be fine but vsync causes input lag in full screen mode. Fceux had poor accuracy. Etc, etc.

-------------------------
My backlog / games completed
 

Sep 30, 2014 at 9:38:11 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: django333

You could use SCART to HDMI to get a good picture on an HD television.





This sounds good but how much input lag will it add? My hdtv is already on the low end - 25ms, but I want to keep total input lag to less than 40ms. So it has to add less than one frame of lag for it to be acceptable.

Plus, won't I still get weird graphics from upscaling?

-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 09:41 AM by PatrickM.

Sep 30, 2014 at 9:39:41 AM
arch_8ngel (68)
avatar
(Nathan ?) < Mario >
Posts: 35263 - Joined: 06/12/2007
Virginia
Profile
Originally posted by: PatrickM.

Originally posted by: arch_8ngel

Originally posted by: PatrickM.

Originally posted by: pegboy

You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

I seriously considered it but I wouldn't want to go smaller than 19" and I don't even have space for that. I have a tiny desk with a small flatscreen on it and I would have no desk space otherwise.

For now, emulators are my only option. Honestly the way I have things configured it looks and plays awesome IMO, and I'm very picky about such things.

Plus, there's netplay!

This may also be a significant factor in why you are finding Adventure Island to be so frustrating.

Latency of the emulator, latency from the USB controls, latency from the LCD screen.
It all adds up in a game like that versus real hardware and a CRT.
 



There is no detectable lag with the posted settings, I've played super mario bros enough to be able to immediately recognize it and I'm very sensitive to lag. I'm stumped as to why NES emulation isn't to the standard that SNES emulation achieved a decade ago. It can't be a more complex system. Guntz: I can deal with the occasional audio hiccup. What I don't get is why I can't run games in full screen mode with no input lag and no screen tearing, with good accuracy and timing (recognizing that it will never be perfect). We've been able to do this with SNES emulators for 10+ years now. Nestopia would be fine but vsync causes input lag in full screen mode. Fceux had poor accuracy. Etc, etc.
This branch of the emulator-vs-hardware discussion has been beaten to death in other threads on the subject, so I can guarantee you that there is at least a frame of latency, just by definition of how LCD screens refresh versus how CRT screens refresh, and how the USB controller gets processed versus how the original console polls controllers and processes the inputs (even worse if you're using bluetooth controllers).

There is probably more than frame, and it probably isn't consistent throughout a game (depends on prioritization of background processes, etc)


You may not notice that frame or two, but it is definitely there, and on certain portions of a game like Adventure Island is the difference between being able to react and being forced to anticipate.


-------------------------
 


Edited: 09/30/2014 at 09:42 AM by arch_8ngel

Sep 30, 2014 at 9:42:37 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: arch_8ngel

Originally posted by: PatrickM.

Originally posted by: arch_8ngel

Originally posted by: PatrickM.

Originally posted by: pegboy

You don't need a massive CRT to play. I have several smaller CRTs that get the job done just fine. Fuck that emulator bullshit, play the real deal, it's so much better.

I seriously considered it but I wouldn't want to go smaller than 19" and I don't even have space for that. I have a tiny desk with a small flatscreen on it and I would have no desk space otherwise.

For now, emulators are my only option. Honestly the way I have things configured it looks and plays awesome IMO, and I'm very picky about such things.

Plus, there's netplay!

This may also be a significant factor in why you are finding Adventure Island to be so frustrating.

Latency of the emulator, latency from the USB controls, latency from the LCD screen.
It all adds up in a game like that versus real hardware and a CRT.
 



There is no detectable lag with the posted settings, I've played super mario bros enough to be able to immediately recognize it and I'm very sensitive to lag. I'm stumped as to why NES emulation isn't to the standard that SNES emulation achieved a decade ago. It can't be a more complex system. Guntz: I can deal with the occasional audio hiccup. What I don't get is why I can't run games in full screen mode with no input lag and no screen tearing, with good accuracy and timing (recognizing that it will never be perfect). We've been able to do this with SNES emulators for 10+ years now. Nestopia would be fine but vsync causes input lag in full screen mode. Fceux had poor accuracy. Etc, etc.

I can guarantee you that there is at least a frame of latency, just by definition of how LCD screens refresh versus how CRT screens refresh, and how the USB controller gets processed versus how the original console polls controllers and processes the inputs.

There is probably more than frame, and it probably isn't consistent throughout a game.


You may not notice that frame or two, but it is definitely there, and on certain portions of a game like Adventure Island is the difference between being able to react and being forced to anticipate.
 



A 40ms difference isn't humanly detectable. It's more like 25ms with the listed settings. Ask Ozzy :-p Anyway, my question is why I can't get comparable performance with NES emulators as was achieved with SNES emulators a decade ago. Why is there such a performance gap between NES and SNES emulators? I don't remember having to deal with input lag, vsync, screen tearing or any other bs with ZSNES. Guntz: of course I'm not referring to zsnes as a perfect emulator, that's my point! An SNES emulator more than a decade old works better than any current NES emulator!

-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 05:12 PM by PatrickM.

Sep 30, 2014 at 9:46:40 AM
arch_8ngel (68)
avatar
(Nathan ?) < Mario >
Posts: 35263 - Joined: 06/12/2007
Virginia
Profile
Originally posted by: PatrickM.

 


A 40ms difference isn't humanly detectable. It's more like 25ms with the listed settings. 
Just because you don't notice (visually) doesn't mean it isn't there, and it doesn't mean it won't impact precision gameplay.

25ms is more than a frame, and that is absolutely enough to make high-level play in certain games nearly impossible (i.e. use of delayed-entry-shift in Tetris)

But that means that certain quick-twitch reactions in the later levels of a game like Adventure Island may also be shifted by AT LEAST one or two critical frames.


And unless you are somehow actively tracking the latency with a high-speed camera, you actually have no way of knowing what it actually is.  You are making an educated guess about the MINIMUM latency based on the raw hardware specs.



-------------------------
 

Sep 30, 2014 at 9:48:10 AM
PatrickM. (1)
avatar
< El Ripper >
Posts: 1390 - Joined: 10/28/2013
Texas
Profile
Originally posted by: arch_8ngel

Originally posted by: PatrickM.

 


A 40ms difference isn't humanly detectable. It's more like 25ms with the listed settings. 
Just because you don't notice (visually) doesn't mean it isn't there, and it doesn't mean it won't impact precision gameplay.

25ms is more than a frame, and that is absolutely enough to make high-level play in certain games nearly impossible (i.e. use of delayed-entry-shift in Tetris)

But that means that certain quick-twitch reactions in the later levels of a game like Adventure Island may also be shifted by AT LEAST one or two critical frames.


And unless you are somehow actively tracking the latency with a high-speed camera, you actually have no way of knowing what it actually is.  You are making an educated guess about the MINIMUM latency based on the raw hardware specs.

 



Uh-uh. Not gonna touch this with a ten foot pole. Like I said, ask Ozzy. He's very knowledgable about such things and could explain it much better than I can. Also I am Not sure you are taking into account "hard CPU sync" I'm not sure what it does but it reduces input lag to almost zero when "hard GPU sync frames" is set to 0.

-------------------------
My backlog / games completed
 


Edited: 09/30/2014 at 05:13 PM by PatrickM.

Sep 30, 2014 at 9:48:45 AM
teh lurv (118)
avatar
< King Solomon >
Posts: 4915 - Joined: 07/17/2013
Massachusetts
Profile
Originally posted by: PatrickM.

Originally posted by: django333

You could use SCART to HDMI to get a good picture on an HD television.



This sounds good but how much input lag will it add? My hdtv is already on the low end - 25ms, but I want to keep total input lag to less than 40ms. So it has to add less than one frame of lag for it to be acceptable. Plus, won't I still get weird graphics from upscaling?

The NES doesn't output RGB without modding. If you're talking other systems like SNES or Genesis, you'll need to convert that Scart RGB signal into a format the HDTV can handle. Most TVs either won't accept 240p or incorrectly treat it as 480i, which will add about 2 frames (~33ms) of lag as the HDTV de-interlaces and upscales the signal.

For minimal input lag, you'll need an external video processer like the Framemeister to handle the signal conversion.



-------------------------
My son... gives me Helpful Nintendo Hints that are far too complex for the adult mind to comprehend. Here's a verbatim example: "OK, there's Ganon and miniature Ganon and there's these things like jelly beans and the miniature Ganon is more powerfuller, because when you touch him the flying eagles come down and the octopus shoots red rocks and the swamp takes longer." And the hell of it is, I know he's right. - Dave Barry

Sep 30, 2014 at 9:50:10 AM
arch_8ngel (68)
avatar
(Nathan ?) < Mario >
Posts: 35263 - Joined: 06/12/2007
Virginia
Profile
Originally posted by: PatrickM.

 Anyway, my question is why I can't get comparable performance with NES emulators as was achieved with SNES emulators a decade ago. Why is there such a performance gap between NES and SNES emulators? I don't remember having to deal with input lag, vsync, screen tearing or any other bs with ZSNES. Guntz: of course I'm not referring to zsnes as a perfect emulator, that's my point! An SNES emulator more than a decade old works better than any current NES emulator!
Have you tried other NES emulators  to see if you can get what you feel is comparable performance to an ancient SNES emulator?

Part of the issue is that since the SNES only had a couple of cartridge-hardware-types (unlike the plethora of NES mappers to support), it is considerably more straightforward to "safely" ignore certain expensive hardware features and have games that still appear to function.

I also wouldn't be surprised to find out that the actual hardware implementation of the real SNES is more refined and straightforward than whatever they cooked up for the NES, originally, probably making it easier to approximate, in general.



-------------------------