Nestopia 1.39

Announce new emulators, discuss which games run best under each emulator, and much much more.

Moderator: General Mods

Locked
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Marty wrote:
Deathlike2 wrote:Yet the HQ3x/4x bugs aren't... unfortunately...
The reason for the general slowdown compared to older versions is because the CPU and GPU no longer run asynchronously between frames. This will give better input response since it forces the GPU to stay put and not go zippety-do-dah and render things ahead. The cost for it can be quite high though.
Meh, if it helps those people that have that input lag.. I guess (though, if there was a way to tweak this behavior, that would be nice).
Yet, the hq3x/hq4x filters are tremendously slow. Don't forget that this is a cycle-accurate emulator with a dot based renderer and a lot of time still needs to be spent in the emulation loop.
I'm probably too spoiled using HQ4x... but then again I'm generally using a 16-bit mode most of the time... hmm
At any rate, you can try open up the video options dialog and change the NES texture memory to reside in system memory instead of video memory and see if that helps.
That works much better, but I kinda expect it to use my video memory w/o issue (high expectations :P ) I'm still thinking the options are borked otherwise... :? Maybe they consume more memory than I expect? I have a Radeon 9800 Pro (128MB of video memory)
Deathlike2 wrote:This needed more testing.
Yes, but not many have offered help.
I don't use enough of the features in Nestopia to notice (except for filters and such).. and I'm not very keen on the NES emulation.. otherwise I don't mind helping.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Agozer
16-bit Corpse | Nyoron~
Posts: 3534
Joined: Sun Aug 01, 2004 7:14 pm
Location: Nokia Land

Post by Agozer »

Thanks for your answers Marty, I appreciate them. I don't really care for HQxx since they've never run that well on my machine, save HQ3x on Nestopia 1.32. What bugs me though is that filters like Super 2XSaI slow the emulation down quite a bit.
whicker: franpa is grammatically correct, and he still gets ripped on?
sweener2001: Grammatically correct this one time? sure. every other time? no. does that give him a right? not really.
Image
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

Marty, is it possible for you to implement correct aspect ratio (force 4:3) on non-standard resolutions like mine (1280x1024)? The guys here at ZSNES have managed to do this :)

Thanks in advance :)
Marty
Nestopia Developer
Nestopia Developer
Posts: 24
Joined: Mon Dec 05, 2005 3:14 am

Post by Marty »

Deathlike2 wrote:Meh, if it helps those people that have that input lag.. I guess (though, if there was a way to tweak this behavior, that would be nice).
Hmm, I guess I could disable it in auto frame skip mode. Using it won't cause any frame disruptions on reasonably fast systems and speed would be back to to normal. If anybody's interested, I can wipe up a WIP build and post it here for anyone to test.
Deathlike2 wrote:That works much better, but I kinda expect it to use my video memory w/o issue (high expectations :P ) I'm still thinking the options are borked otherwise... :? Maybe they consume more memory than I expect? I have a Radeon 9800 Pro (128MB of video memory)
No, it's probably because of the low transfer rate between system memory and video memory caused by cache-trashing with the hqx and 2xSaI filters as they jump back and forth between write locations. System memory backed textures, aka managed textures, gets uploaded to video memory as needed by D3D and may take advantage of DMA which could result in better performance with some cards/driver setups.
EMu-LoRd wrote:Marty, is it possible for you to implement correct aspect ratio (force 4:3) on non-standard resolutions like mine (1280x1024)? The guys here at ZSNES have managed to do this :)
There's an aspect ratio option in the menu which will stretch the picture to match what a TV would show. Have you tried that in combination with a setting of maximum screen coordinates (video options dialog), i.e showing the full 256x240 instead of the default 256x224?
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

Marty wrote:
EMu-LoRd wrote:Marty, is it possible for you to implement correct aspect ratio (force 4:3) on non-standard resolutions like mine (1280x1024)? The guys here at ZSNES have managed to do this :)
There's an aspect ratio option in the menu which will stretch the picture to match what a TV would show. Have you tried that in combination with a setting of maximum screen coordinates (video options dialog), i.e showing the full 256x240 instead of the default 256x224?
I'm not sure this is what I'm looking for. You were right that revealig all lines does show more on the screen but the fact is that the screen still isn't really 4:3 here even with TV aspect on. Maybe Deathlike2 can explain it a bit better as he has succesfully implemented this feature into ZSNES.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Marty wrote:
Deathlike2 wrote:Meh, if it helps those people that have that input lag.. I guess (though, if there was a way to tweak this behavior, that would be nice).
Hmm, I guess I could disable it in auto frame skip mode. Using it won't cause any frame disruptions on reasonably fast systems and speed would be back to to normal. If anybody's interested, I can wipe up a WIP build and post it here for anyone to test.
I'm interested.
Deathlike2 wrote:That works much better, but I kinda expect it to use my video memory w/o issue (high expectations :P ) I'm still thinking the options are borked otherwise... :? Maybe they consume more memory than I expect? I have a Radeon 9800 Pro (128MB of video memory)
No, it's probably because of the low transfer rate between system memory and video memory caused by cache-trashing with the hqx and 2xSaI filters as they jump back and forth between write locations. System memory backed textures, aka managed textures, gets uploaded to video memory as needed by D3D and may take advantage of DMA which could result in better performance with some cards/driver setups.
Hmm, I see.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

It's not only HQ2x/HQ3x ,but everything else is

NEStopia 1.33b - a huge performance decrease :(

Some 'high-end' :) Comparison tests:


Settings used:
------------------
2048x1536 32bit color @ 60Hz
Triple Buffering
VSync ON
Hi Precision Timer
HQ3x
Sound 16bit/96kHz Stereo, latency=1
Max. size Full Screen


1.32
-------
HQ3x,HQ2x and NTSC - Flies at steady 60 fps !


1.33b
-------
Same settings = only 42fps :(
With HQ2x instead of HQ3x = a crappy 49.5fps...this should run about 80-90fps with 1.32
With NTSC filter = crappy 46fps.
and HQ4x is way too slow,but in ZSNES it's quite the opposite - ultra-fast :)

Something's wrong with 1.33,There's a severe performance drop.


Other thing I noticed is in Simulated Stereo Mode,the right speaker sound output is *way* louder than the left one,so this feature is still unusable.This issue hasn't been fixed since the feature was first introduced.Hmph,forcing me to always default to mono.
Yes,I know I can change the balance slider in the soundcard's mixer or the amplifier / speakers,but the other apps will 'suffer' then.

A simple hack will get rid of this easily: when Stereo is turned on,boost the left channel volume by the difference in dB between the 2 channels..

P.S. I'm also interested in a WIP build :)

P.P.S. I have always used 256x240 (0-255 / 0-239) settings and TV aspect correct for both PAL and NTSC since I tried NEStopia for the first time.Works great :)
Last edited by kick on Mon Sep 04, 2006 1:26 am, edited 4 times in total.
Clements
Randomness
Posts: 1172
Joined: Wed Jul 28, 2004 4:01 pm
Location: UK
Contact:

Post by Clements »

Speed is fine here. No problems with hq3x/hq4x, using v1.33b.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Clements wrote:Speed is fine here. No problems with hq3x/hq4x, using v1.33b.
yes...if you're using a Conroe or Athlon X2 :)

Setting textures to system memory helps a little,but so it did in 1.32.
Marty
Nestopia Developer
Nestopia Developer
Posts: 24
Joined: Mon Dec 05, 2005 3:14 am

Post by Marty »

http://rapidshare.de/files/31868818/Nes ... p.zip.html

Ok, here's what I've done. GPU ahead rendering will be disabled unless auto frame-skip or triple-buffering is enabled. Triple-buffering is now enabled by application default but users with fast enough computer are encouraged to disable it.
Cecil
Paladin
Posts: 75
Joined: Fri Jul 30, 2004 2:25 am

Post by Cecil »

First off, I'd like to commend Marty for writing such a fantastic emulator. Of all the NES emulators I've used, this is by far the best. Now, a question. Now I know this is something that's been asked a million times by now, but I'm trying to get it to look as close to my TV as I can. I'm not reaching for perfection or anything like that, as I know it's impossible (or at least very highly unlikely). I noticed all the extra settings that can be tweaked when the NTSC filter is selected and you click the "Settings" button. For the color settings I have it on "Auto", but I notice a slider for scanlines, and a checkbox for Bilinear Filtering. Is there a certain number of scanlines I should set to get it close to a TV, or is it more of a "Adjust until it looks right" thing? Same with Bilinear filtering; on, off, or whatever I personally think looks right? Btw, I'm using version 1.33b.
System Specs:

2.2GHz Athlon64 X2 4400+, 2GB DDR 400 SDRAM
EVGA Geforce 7600GT 256MB
Realtek AC '97
Microsoft Windows Vista Home Premium
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

1.33c-WIP1
A bit faster than 1.33b,but still a good 10 fps slower than 1.32 ,even with triple Buffering and System Memory.enabled.



1.33c
-------------------------------------------------------
HQ3x Double Buffer Vsync ON - 42 fps | VSync OFF - Very unstable (ranging from 'speedy' 57 fps,down to very slow 40 fps)
HQ3x Triple Buffer ON - 50 fps | OFF - 59 fps (Stable)

HQ4x Double Buffer ON - 37 fps | OFF -36 fps
HQ4x Triple Buffer ON - 44 fps | OFF - 40 fps <--- (?!)

In every other mode disabling VSync improves performance,but with HQ4x,it's notably faster with VSync ON than with VSync OFF!? Strange.


1.32
----------------------------------------------
HQ3x Double 60 fps | 60 fps
HQ3x Triple 60 fps | 60 fps

But the old v1.32 runs at solid 60 fps in every possible mode with the highest possible settings.Hmmm...
Last edited by kick on Tue Sep 05, 2006 5:23 pm, edited 2 times in total.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

For the bilinear filtering,you should turn it off for an authentic NES experience.

There's difference between PAL and NTSC TVs,NTSC has visible scanlines,with scanline intensity somewhere between 50% and 100% (depending on the TV)
PAL TVs do not have visible scanlines,or you may notice something similar on some very big screens,so set it to OFF or somewhere between 8 to 15%. But if you have a CRT monitor and you run at 640x480 fullscreen,I recommend turning them off,because you will always notice the PC monitor scanlines at such low resolution.

If you plan to use scanlines and run in Fullscreen stretched to max. screen area,run at the highest resolution your monitor can support to avoid artifacts.
Cecil
Paladin
Posts: 75
Joined: Fri Jul 30, 2004 2:25 am

Post by Cecil »

kick wrote:For the bilinear filtering,you should turn it off for an authentic NES experience.

There's difference between PAL and NTSC TVs,NTSC has visible scanlines,with scanline intensity somewhere between 50% and 100% (depending on the TV)
PAL TVs do not have visible scanlines,or you may notice something similar on some very big screens,so set it to OFF or somewhere between 8 to 15%. But if you have a CRT monitor and you run at 640x480 fullscreen,I recommend turning them off,because you will always notice the PC monitor scanlines at such low resolution.

If you plan to use scanlines and run in Fullscreen stretched to max. screen area,run at the highest resolution your monitor can support to avoid artifacts.
I use a CRT and play @ 1280x960, the highest it supports is 1280x1024, though I heard 1280x1024 wasn't a true 4:3 aspect ratio resolution. So which would you recommend?
System Specs:

2.2GHz Athlon64 X2 4400+, 2GB DDR 400 SDRAM
EVGA Geforce 7600GT 256MB
Realtek AC '97
Microsoft Windows Vista Home Premium
Marty
Nestopia Developer
Nestopia Developer
Posts: 24
Joined: Mon Dec 05, 2005 3:14 am

Post by Marty »

kick wrote:1.33c
A bit faster than 1.33b,but still a good 10 fps slower than 1.32 even with triple Buffering and System Memory.
Thanks for the report. Fixed a stupid bug, so here's yet another build which I believe should fix your speed problem once and for all.

http://rapidshare.de/files/31992221/Nes ... 2.zip.html
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Finally, HQ4x @ 60fps... awesome.

Whatever that bug was (and I know how silly it can be), it was definately the cause of the performance drop. Whatever you did to address it earlier could be kept I guess (I didn't notice a difference really).
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Martin: Thanks,downloading now :)


Cecil: Use 1280x960 :) I forgot to say to use the highest 4:3 mode your monitor supports.
And use 60Hz refresh for an authentic experience (although I don't know if your eyes will like it :) )
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Also,in the future,can you upload your WIP builds / files to a better webhoster? I hate RapidShare.It's a PITA,it bombards you with portscans and ads,has you waiting in a queue,requires you to enable Javascript and doesn't support download managers.Bah!
Other sites are much more user-friendly.

Nevermind,downloaded it,but it was a pain in the arse.
Testing time :)
Cecil
Paladin
Posts: 75
Joined: Fri Jul 30, 2004 2:25 am

Post by Cecil »

kick wrote:Martin: Thanks,downloading now :)


Cecil: Use 1280x960 :) I forgot to say to use the highest 4:3 mode your monitor supports.
And use 60Hz refresh for an authentic experience (although I don't know if your eyes will like it :) )
Heh, thanks, and yeah my eyes can take it. At 1280x960 my monitor maxes out at 70Hz. It's recommended resolution is 1024x768@85Hz, but I've grown too used to the higher resolution.
System Specs:

2.2GHz Athlon64 X2 4400+, 2GB DDR 400 SDRAM
EVGA Geforce 7600GT 256MB
Realtek AC '97
Microsoft Windows Vista Home Premium
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

1.33c-WIP2

Bug: If emulation options such as 'Emulation Pause','Toggle Show FPS',etc. are assigned to a Gamepad/Joystick button,when emulation is running,pressing the assigned joypad button only once actually toggles this option very rapidly at 60 times per second ?!
I can't pause/unpause the emulation with a joypad because of this weird bug.
Holding a button down should trigger only once (one press),not acting like a Turbo-fire button.
Even the ZSNES WIP builds have this #$%&*@^ problem.Pressing the joypad button to toggle 'Show FPS' toggles it many times at a very fast rate,mostly making an even number of toggles,so it's very difficult to toggle anything.


Performance:
So this little VSync fix did improve performance a bit with VSync OFF and the unstable framerate is now gone.
Framerate with VSync off is now always faster than with VSync on = correct behavior
But it didn't improve performance at all with VSync ON,so the old 1.32 is still a good 10fps faster with HQ3x VSync ON.
Still getting 50fps with 1.33c :(


Here's the performance I get now:

HQ4x Double Buffer VSync ON - 37 fps VSync OFF - 38 fps
HQ4x Triple Buffer VSync ON - 44 fps VSync OFF - 46 fps

HQ3x Double Buffer VSync ON - 42 fps VSync OFF - 60 fps
HQ3x Triple Buffer VSync ON - 50 fps VSync OFF - 60 fps

Reference (old v1.32): HQ3x VSync ON, TB - 60 fps

Will there be an option to set NEStopia to run at 120Hz refresh for NTSC and 100Hz for PAL (Like ZSNES does)? Also an option to force the monitor to run at 50 Hz when using PAL mode (a good deal of CRT monitors actually support 50Hz refresh)

The Screen Curvature 'option' is not that useful for now,but it may become more useful if it bends the ends of the picture as well,giving you something like a 'reverse-pincushion shape' distortion effect on the picture.
The screen still looks flat now,even with a maximum curvature.
Remember VirtuaNES and it's novelty feature - 'Show TV frame' where it applies an old TV BMP to the picture? A proper curvature plus a realistic-looking 'TV frame' would get it closer to the 'TV experience' :)
Just the BMP of the 'frame' in VirtuaNES looks kinda sucky (like an ancient 1960 B/W TV) :D
Marty
Nestopia Developer
Nestopia Developer
Posts: 24
Joined: Mon Dec 05, 2005 3:14 am

Post by Marty »

Worked out a few issues and improved the timer. I think vsync should work better now.

http://s22.quicksharing.com/v/9513806/N ... 3.zip.html
kick wrote:Bug: If emulation options such as 'Emulation Pause','Toggle Show FPS',etc. are assigned to a Gamepad/Joystick button,when emulation is running,pressing the assigned joypad button only once actually toggles this option very rapidly at 60 times per second ?!
Aye, crazy bug, but now it's fixed.
kick wrote:Will there be an option to set NEStopia to run at 120Hz refresh for NTSC and 100Hz for PAL (Like ZSNES does)?
Already there with the 'auto monitor frequency' check-box in the video options dialog. Just turn it on and Nestopia will use the most appropriate frequency. For 120Hz with vsync, your video card must have the D3DPRESENT_INTERVAL_TWO cap bit set however. You can open the logfile and see if your card supports it.
kick wrote:Also an option to force the monitor to run at 50 Hz when using PAL mode (a good deal of CRT monitors actually support 50Hz refresh)
Hmm, I've never seen anything below 56Hz, or at least not in the D3D display mode enumerator. Again, check the logfile for a list of what rates your monitor can handle.
kick wrote:The Screen Curvature 'option' is not that useful for now,but it may become more useful if it bends the ends of the picture as well,giving you something like a 'reverse-pincushion shape' distortion effect on the picture.
Agreed. I'll look at that later.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Hmm, I've never seen anything below 56Hz, or at least not in the D3D display mode enumerator. Again, check the logfile for a list of what rates your monitor can handle.


50-160Hz,up to 2048x1536 res. (22" CRT)

There are also a good number of monitors that support 200Hz refresh rates (like most Iiyama CRTs),sadly mine doesn't.

Having a 200Hz PAL mode will also be a great addition :)

and most (even older) video cards can handle from 40-something Hz to 200Hz refresh rates.

Also,all European brands of monitors (or those sold in Europe) must handle 50Hz as well.

Test: If you have a video card with a TV out that supports PAL TV output,when you connect both a PAL TV via the TV out and the monitor to the video card,the system POST screens and Windows boot loader run at 50Hz on both screens.You can see if your monitor supports 50Hz with this "test",or you can try a setting of 50Hz with PowerStrip and see if it's supported.
Last edited by kick on Wed Sep 06, 2006 7:42 pm, edited 2 times in total.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

1.33c-WIP3

Now it's *a lot* faster than before,matching the speed I get with 1.32,

Performance:

HQ4x Double Buffer VSync ON - 46 fps VSync OFF - 46 fps
HQ4x Triple Buffer VSync ON - 46 fps VSync OFF - 46 fps

HQ3x Double Buffer VSync ON - 60 fps VSync OFF - 60 fps
HQ3x Triple Buffer VSync ON - 60 fps VSync OFF - 60 fps

Great,BUT:
I smell something fishy here. Absolutely the same performance from every possible combination of VSync / Buffering? Odd...Pretty fast but I can see something's wrong.

Also,now I noticed (need confirmation/testing from others) a bit more input lag than even 1.32.
Test with SMB3 and compare the time it takes between pressing the jump button and Mario jumping.Also compare the 'latency' when moving on the world map.

Gamepad button issue fixed.Works great now :D

...still not ready for a final release,but it's now way better than the buggy 1.33b
Last edited by kick on Wed Sep 06, 2006 7:52 pm, edited 1 time in total.
xamenus
Veteran
Posts: 907
Joined: Fri Jul 30, 2004 12:26 am

Post by xamenus »

kick wrote:Also,now I noticed (need confirmation/testing from others) a bit more input lag than even 1.32.
Test with SMB3 and compare the time it takes between pressing the jump button and Mario jumping.Also compare the 'latency' when moving on the world map.
I *think* I may have noticed this too, but it was very negligible and decided that my mind was just playing tricks on me. However, I haven't tested many games.
Marty
Nestopia Developer
Nestopia Developer
Posts: 24
Joined: Mon Dec 05, 2005 3:14 am

Post by Marty »

kick wrote:Also,all European brands of monitors (or those sold in Europe) must handle 50Hz as well.
That may be, but I can't do much about it because:
DX9 SDK doc wrote:There are no supported refresh rates below 57 hertz.
kick wrote:Great,BUT:
I smell something fishy here. Absolutely the same performance from every possible combination of VSync / Buffering? Odd...Pretty fast but I can see something's wrong.
Why? Your frame rate is locked at 60fps just as it should be.
kick wrote:Also,now I noticed (need confirmation/testing from others) a bit more input lag than even 1.32.
Hmm, double buffering mode *should* hade reduced input lag on this WIP compared to 1.32. Triple buffering on the other hand should be roughly the same. That said, triple buffering is useless if you can reach the same performance with double buffering. Enabling it would only increase sound and input lag and nothing else.

Perhaps the sound latency is playing tricks on you? Enter the sound options dialog and move the slider all the way to the left, and try again. SMB1 is a good tester for checking input response. You may also want to compare with filters OFF.
Locked