PDA

View Full Version : Improving SNES9x 1.4.1's speed




7on
Nov 23, 2003, 09:53 PM
Emulation is great but when you get stuttery video on a 1Ghz G4 with 1GB of RAM something is off.



heljy
Dec 14, 2003, 12:05 AM
Originally posted by 7on
Emulation is great but when you get stuttery video on a 1Ghz G4 with 1GB of RAM something is off.

Yes, i have having that same problem too on my 867Mhz PBook G4.

I also notice that the CPU usage is all the way up. Is that common? I ran it on a P4 2.8Ghz can it ran smooth as silk with barely any noticable CPU hit...

BTW I am using Snes9x Custom 1.4.2 (46). Are the earlier version like this?

rainman::|:|
Dec 14, 2003, 01:21 AM
the last time i ran it on my 400 iMac, it was smooth and worked well, the sound was a bit buggy tho. i don't know what version i used... but you should definitely not be encountering these problems on a processor many times faster and two generations later.

paul

heljy
Dec 14, 2003, 01:28 AM
Originally posted by paulwhannel
the last time i ran it on my 400 iMac, it was smooth and worked well, the sound was a bit buggy tho. i don't know what version i used... but you should definitely not be encountering these problems on a processor many times faster and two generations later.

paul

I tried with all the different video modes (direct/opengl) and event disabled sound. It doesnt seem to help...

Daveman Deluxe
Dec 14, 2003, 01:37 AM
The folks that write SNES9x need to try to get OpenGL supported. Under OS 9, you can use RAVE mode to offload the graphics processing to the graphics coprocessor which results in great frame rates. Under OSX, RAVE mode cannot be used since OSX does not use it.

Furthermore, all games max out at sixty frames per second. Some games that use special graphics modes or chipsets (i.e. F-Zero and Star Fox) top out at fifty or even forty-eight.

Even if your system is almost always running sixty fps, you'll drop the occasional frame. Frankly, I'm not sure how good the port is.

heljy
Dec 14, 2003, 09:58 AM
I dont even get 60FPS!

Shouldnt the video card take the load off the cpu under opengl? I tried it on my windoze box and i see load improvement off the cpu when i use opengl.

But you are right, how good is the port.

heljy
Dec 14, 2003, 10:03 AM
On the other hand, could it be because of Panther? I downloaded the original SNES9x 1.3.9b and it hung. I read from a post somewhere that he's experiencing it too...

Daveman Deluxe
Dec 14, 2003, 02:25 PM
Originally posted by heljy
Shouldnt the video card take the load off the cpu under opengl? I tried it on my windoze box and i see load improvement off the cpu when i use opengl.

SNES9x for Mac doesn't support OpenGL to my knowledge. I'll have to check it out again.

I'd do it now, but the download link on emulation.net is broken. Anybody know of any other download sites?

Frankly, I recommend SNES9x Custom anyway because it supports SuperScope 6 and the mouse.

FattyMembrane
Dec 15, 2003, 07:25 PM
SNES9x Custom supports OpenGL for rendering.

heljy
Dec 16, 2003, 12:27 AM
Originally posted by FattyMembrane
SNES9x Custom supports OpenGL for rendering.

Yes, I am using SNES9x Custom and is using the OpenGL display option. But the emulation takes up all of my CPU time. I would think that using the OpenGL option would offload the rendering of the display to the GPU?

neoelectronaut
Dec 20, 2003, 12:34 AM
Originally posted by Daveman Deluxe
SNES9x for Mac doesn't support OpenGL to my knowledge. I'll have to check it out again.

I'd do it now, but the download link on emulation.net is broken. Anybody know of any other download sites?


www.zophar.net is where I get ALL my emulator-related stuff.

Daveman Deluxe
Dec 20, 2003, 04:11 PM
Originally posted by heljy
Yes, I am using SNES9x Custom and is using the OpenGL display option. But the emulation takes up all of my CPU time. I would think that using the OpenGL option would offload the rendering of the display to the GPU?

All right, now that I've used Custom a bit, here's the story.

The CPU is still doing a LOT of work. ROM dumps (ROMs for short) are not compiled for the PowerPC processors. Essentially, an emulator is a translator--it's like a compiler, only it works on the fly. If you've ever compiled code, you know that's very CPU-intensive stuff. Thankfully, in the case of the SNES, the emulator only has to emulate as fast as a 3.58 MHz processor. The very first PowerPC computers could just barely emulate the NES, 68k Macs couldn't do it at all, and it wasn't until the PPC 603 reached clock speeds around 150 MHz that SNES emulation becamse feasable.

In short, graphics aren't the only thing that the computer has to work out. That's why your CPU will almost always be running a high load when using a SNES emulator.

As for the OpenGL question: Under some modes, running the OpenGL accelerator will help, but not all. The "standard" modes will probably see the least benefit, and running those modes in OpenGL can even be a liability due to latencies. The biggest benefit comes from the Eagle and 2xSaI modes, which require a significant amount of additional graphics horsepower on top of the translation and standard graphics work.

heljy
Dec 20, 2003, 11:42 PM
Originally posted by Daveman Deluxe
All right, now that I've used Custom a bit, here's the story.

The CPU is still doing a LOT of work. ROM dumps (ROMs for short) are not compiled for the PowerPC processors. Essentially, an emulator is a translator--it's like a compiler, only it works on the fly. If you've ever compiled code, you know that's very CPU-intensive stuff. Thankfully, in the case of the SNES, the emulator only has to emulate as fast as a 3.58 MHz processor. The very first PowerPC computers could just barely emulate the NES, 68k Macs couldn't do it at all, and it wasn't until the PPC 603 reached clock speeds around 150 MHz that SNES emulation becamse feasable.

In short, graphics aren't the only thing that the computer has to work out. That's why your CPU will almost always be running a high load when using a SNES emulator.

As for the OpenGL question: Under some modes, running the OpenGL accelerator will help, but not all. The "standard" modes will probably see the least benefit, and running those modes in OpenGL can even be a liability due to latencies. The biggest benefit comes from the Eagle and 2xSaI modes, which require a significant amount of additional graphics horsepower on top of the translation and standard graphics work.

I understand that emulating something would definitely take up CPU resources, I just didnt expect it to "fully utilize" the entire CPU.

Having used SNES9x on my old Pentium, i didnt think that it would be a problem for PowerPC. I totally understand that they are of different architecture, but I would imagine that raw clockspeed alone is enough to emulate the SNES to the point where you dont get "stuttery video". Makes me wonder if the PPC architecture is really bad for emulating, in this case, the SNES. On the other hand, I understand that it could be SNES9x Custom itself that is not optimized and bloated, but the author has announced that this is the most optimized it will be...

Has anyone tried it on a G5?

Daveman Deluxe
Dec 21, 2003, 12:06 AM
heljy:

It's interesting that you're having video problems on your dual 1 GHz G4. I'm running it on an iBook 700 in 2xSaI mode and getting sixty frames per second in all cases. I cannot think of anything that would account for the difference.

heljy
Dec 21, 2003, 12:45 AM
Originally posted by Daveman Deluxe
heljy:

It's interesting that you're having video problems on your dual 1 GHz G4. I'm running it on an iBook 700 in 2xSaI mode and getting sixty frames per second in all cases. I cannot think of anything that would account for the difference.

Actually I have a PowerBook 12" Rev A. So its a G4 867Mhz with 256MB Ram and I dont have any problems running it at all. I am just curious why SNES9x Custom is so much more CPU intensive. But my frames kinda skip even though it shows above 30fps all the time and is wondering if this is the case for macs throughout.

Daveman Deluxe
Dec 21, 2003, 01:21 AM
heljy:

Yeah, sorry about that. It's 7on with the dualie.

Anyway, the reason the emulation seems to stutter is simple.

A SNES game can run at a maximum of sixty frames per second, due to the limitations of NTSC and PAL video. That's just the way it is. When you get thirty frames per second, you're not getting one frame on every other possible frame, it's more like you're losing two frames here, three there, and so on. Frame loss isn't equitable, which is why the image seems to stutter.