zsnes vs zsnexbox

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

Moderator: General Mods

Post Reply
customcarvin
New Member
Posts: 5
Joined: Tue Jun 06, 2006 1:51 am

zsnes vs zsnexbox

Post by customcarvin »

Hi, had a question about a ported version of zsnes (zsnexbox) and thought; hey zsnes forums would be the place to ask!

The question is...
Why cant the windows version of the snes emu run at full speed at 800x600 with say hq2x enabled (most noticeable on chrono trigger, when on world map) on a similar setup to an xbox, when the xbox port runs at full speed with filters?

Here is an example; I have a 1.0ghz pIII w/384mb sdr ram plus a radeon 9600 w/128mb ddr ram at agp4x, that can’t run zsnes at full speed with all the bells and whistles. My comp has xp sp2, dx9.0c installed w/ the latest omega drivers (tried ati drivers too) and I don’t run anything EXTRA in the background...

I believe the xbox only has a 733mhz celeron or pIII cpu and a gpu similar to a geforce 3/4 with 64mb ddr2 shared ram...

I'm not complaining... Just thought I’d ask.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Re: zsnes vs zsnexbox

Post by Deathlike2 »

customcarvin wrote:Hi, had a question about a ported version of zsnes (zsnexbox) and thought; hey zsnes forums would be the place to ask!
We don't do support for zsnexbox.
The question is...
Why cant the windows version of the snes emu run at full speed at 800x600 with say hq2x enabled (most noticeable on chrono trigger, when on world map) on a similar setup to an xbox, when the xbox port runs at full speed with filters?

Here is an example; I have a 1.0ghz pIII w/384mb sdr ram plus a radeon 9600 w/128mb ddr ram at agp4x, that can’t run zsnes at full speed with all the bells and whistles. My comp has xp sp2, dx9.0c installed w/ the latest omega drivers (tried ati drivers too) and I don’t run anything EXTRA in the background...

I believe the xbox only has a 733mhz celeron or pIII cpu and a gpu similar to a geforce 3/4 with 64mb ddr2 shared ram...

I'm not complaining... Just thought I’d ask.
That's probably because you haven't compiled one for the P3. I suspect the one for the XBOX has specific optimizations compiled for that system. If you were to compile ZSNES for your processor, it would certainly match or beat the XBOX version. All ZSNES binary releases are compiled for the Pentium, hence the discrepancy.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Jipcy
Veteran
Posts: 768
Joined: Thu Feb 03, 2005 8:18 pm
Contact:

Re: zsnes vs zsnexbox

Post by Jipcy »

Deathlike2 wrote:All ZSNES binary releases are compiled for the Pentium,
When you say Pentium, do you mean Pentium = i586 = Pentium I?
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Re: zsnes vs zsnexbox

Post by Deathlike2 »

Jipcy wrote:
Deathlike2 wrote:All ZSNES binary releases are compiled for the Pentium,
When you say Pentium, do you mean Pentium = i586 = Pentium I?
Yes. Although, I guess it's slightly different, since i586 is generic for many different processors of its era. Most processors of that era that were not Pentiums had poor FPUs, which the compiler "may" be compensating for, but I'm not really sure.
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 »

Just compile an i686-optimized build with release-grade optimizations and you'll be fine.
Works great on Pentium III or AthlonXP machines.
Gil_Hamilton
Buzzkill Gil
Posts: 4294
Joined: Wed Jan 12, 2005 7:14 pm

Post by Gil_Hamilton »

'S also worth noting that there's a LOT less overhead on the XBox than a PC, regardless if it's running Windows, Linux, or Mac.

And that GPU is meaningless to emulation... well, except in cases like ePSXe where it has weird wrapper setups available.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Gil_Hamilton wrote:'S also worth noting that there's a LOT less overhead on the XBox than a PC, regardless if it's running Windows, Linux, or Mac.
Overhead by hardware abstraction... this is consistant for all OSes. XBOXes use fixed hardware, so the hardware abstraction is not needed.
And that GPU is meaningless to emulation... well, except in cases like ePSXe where it has weird wrapper setups available.
Not quite, it is still used but the CPU is more important here.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
clessoulis
Regular
Posts: 282
Joined: Sun Aug 08, 2004 12:22 am

Post by clessoulis »

Is there a place to find precompiled zsnes builds for certain cpu's?
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

No. We are under no obligation to provide you that. However, we endorse ZGet for all your compiling needs.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

The xbox shares main memory with video memory (no blitting required) so you don't need to worry about the copying. Thats why it runs so fast.
Aaron
Lurker
Posts: 157
Joined: Sat Dec 31, 2005 7:26 am

Post by Aaron »

For ZGet (which will help you to download and compile the source code for ZSNES), refer to this thread. :)
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

I believe that zsnexbox uses some asm and c code hacked specifically for running on xbox, there are lots of optimized lines of code in there.


although some of the Zsnes members helped, the port is being done and maintained by "nes6502" the official support thread is here: http://forums.xbox-scene.com/index.php?showtopic=582841
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

pagefault wrote:The xbox shares main memory with video memory (no blitting required) so you don't need to worry about the copying. Thats why it runs so fast.
Is there an option in ZSNES (the standard PC version) to force the emulator to use System Memory instead of VRAM for graphics display (as in NEStopia)?
That would _greatly_ speed up the emulation with HQ4x filter enabled,especially at high resolutions or for cards with 64MB or less VRAM.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

kick wrote:
pagefault wrote:The xbox shares main memory with video memory (no blitting required) so you don't need to worry about the copying. Thats why it runs so fast.
Is there an option in ZSNES (the standard PC version) to force the emulator to use System Memory instead of VRAM for graphics display (as in NEStopia)?
That would _greatly_ speed up the emulation with HQ4x filter enabled,especially at high resolutions or for cards with 64MB or less VRAM.
You are soooooo wrong there. System memory on a PC is FAR FAR slower than one on the XBOX. Video memory on modern video cards are FAR FAR faster (and more efficient) than system memory.

ZSNES uses Video Memory at all times, using System Memory slows ZSNES down to a Powerpoint crawl especially with HQx in use. Don't even DARE suggest that.
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 »

Yes,but that's not always true.
Imagine this situation: You have an old machine with Dual-Channel DDR400 system memory and an old 64MB AGP GFX card with slow 200MHz DDR framebuffer.Run any emulator at 1600x1200 or higher resolution with a HQ3x/4x filter.
Emulation with software filters will always run faster in this case,not just because of the faster system memory,but because having much more than 64MB available (without the speed penalty) and eliminating the copying stage will lead to a significant speed increase.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

kick wrote:Yes,but that's not always true.
Imagine this situation: You have an old machine with Dual-Channel DDR400 system memory and an old 64MB AGP GFX card with slow 200MHz DDR framebuffer.Run any emulator at 1600x1200 or higher resolution with a HQ3x/4x filter.
Emulation with software filters will always run faster in this case,not just because of the faster system memory,but because having much more than 64MB available (without the speed penalty) and eliminating the copying stage will lead to a significant speed increase.
That is even more wrong there. When you use system memory, you are increasing the bandwidth load on system memory (whereas dedicated video cards do not have such a limitation). The framebuffer copies are even worse in this instance since you have to do work traveling through the PCI/AGP/PCI-E bus just do work on the graphics. I'm pretty sure someone knows better on this matter.. but the speed penalty INCREASES when you do stuff on this magintude. HQx works better when you have a beefy CPU and a dedicated video card to handle some of the work. Doing what you are suggesting increases the the CPU requirement further when the video card is not as fast or does not have sufficient memory to handle this. HQ4x is not meant to run on system memory or slower computers, end of story.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

The xbox port used old inaccurate code as well that is full of speedhacks that removed. Even if this wasn't the problem, we cannot get to this "magical speedy code" because the author of it doesn't want to share his source even though he is required to under the GPL terms. He has also violated the GPL by including code from other non GPL emulators. It's something I wouldn't touch with a 10 foot pole.
kick
Trooper
Posts: 550
Joined: Wed Mar 01, 2006 8:47 pm

Post by kick »

Then why do I get only 45fps with NEStopia (with a HQ4x filter) when using VRAM and solid 60fps when using System memory?
On the other hand,when using a hardware bilinear filter or no filter at all,VRAM is notably faster than system RAM.
Last edited by kick on Sat Feb 17, 2007 10:43 am, edited 1 time in total.
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Your system is most likely hitting other bottlenecks. Fact is, emulating the NES is not as complex as the SNES by a significant factor.

I've tinkered with the adding such an option to ZSNES.. ZSNES's GUI slows down by like a factor of 4 or more just because of using System Memory instead of Video Memory in a Windowed mode with a 32-bit desktop and HQ4x. This is unacceptable on all levels.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
byuu

Post by byuu »

Video memory on modern video cards are FAR FAR faster (and more efficient) than system memory.
Video cards may use GDDR3, but that doesn't matter. You have to get your graphics to the video card, and that is still painfully slow. Once the memory is in there, you get GDDR3 speeds and hardware acceleration for moving those images around, and yes, video->video blits are damn fast. However, getting data from the RAM to the video card is damn slow. Reading from it is even worse.

If you draw anything in system memory, your video card can't do anything with it. Eventually, the system memory surface is transferred to video memory. The larger that sysmem surface is, the longer that transfer will take.

The fastest way to do graphics on a PC is to draw the smallest possible buffer into system RAM, and then copy that to video RAM and let the video card upscale the image. You're screwed with HQ4x, you have to draw ~1024x1024 in system memory.
Then why do I get only 45fps with NEStopia (with a HQ4x filter) when using VRAM and solid 60fps when using System memory?
Who knows. Maybe Marty is performing the HQ4x filter inside video RAM, causing reads from video memory.
badinsults
"Your thread will be crushed."
Posts: 1236
Joined: Wed Jul 28, 2004 1:49 am
Location: Not in Winnipeg
Contact:

Post by badinsults »

To be honest, I tried Zsnexbox, and I would suggest sticking with the xbox port of snes9x. I tried fiddling around with the graphics settings, and there wasn't a single one that was good.
<pagefault> i'd break up with my wife if she said FF8 was awesome
customcarvin
New Member
Posts: 5
Joined: Tue Jun 06, 2006 1:51 am

Post by customcarvin »

pagefault:
we cannot get to this "magical speedy code" because the author of it doesn't want to share his source even though he is required to under the GPL terms.
That WAS true....
Version 3.0 Final just came out and nes6502 released the source...


badinsults:
To be honest, I tried Zsnexbox, and I would suggest sticking with the xbox port of snes9x. I tried fiddling around with the graphics settings, and there wasn't a single one that was good.
Thanks for the opinion, but id rather use a port of zsnes, though be it full of speed hacks or not, over snes9x... I never liked that emu from the start. I tried the windows version and never thought it compared to zsnes on any level... maybe its different on xbox, but I don't care, zsnexbox works and looks close enough to the real thing for me ;)
Also, the graphics settings seem great to me, plenty of choices too... I use SuperScale2x and bilinear filtering. It runs smooth as butta and looks incredible!
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

Any image that is not stretched 4:3 will make the image not look like the original... which I hear the XBOX port fails at.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
customcarvin
New Member
Posts: 5
Joined: Tue Jun 06, 2006 1:51 am

Post by customcarvin »

Deathlike2:
Any image that is not stretched 4:3 will make the image not look like the original... which I hear the XBOX port fails at.
I'm not too savvy with technical explanations so, I hope this makes sense; in zsnexbox v3.0 you can have the image stretched to any custom pixel size you want...

For example; I have mine stretched to 640.0023x480.0088 (closest that I could get it to 640x480) which I believe is essentially the 4:3 aspect ratio that you speak of...

Again, I could be wrong, so by all means correct me if I am. (And if I am, I can then fix it in zsnexbox if given the correct answer ;))
Post Reply