May 25, 2010

Frameskipping and Emulation (esp. Snes9x4D)

Just because someone asked me, how Frameskip works on Snes9x4D here is a little explanation about:

Frameskipping and Emulation.

Mhhh. However correct Emulation with Frameskipping it's never anywhere. You have to skip one or the other thing in the calculation of emulation. you can not skip everything, just because otherwise you have other problems ("jerk scrolling" ...).

I explain what Snes9x4D is doing.

When you use the Frameskip = AUTO Setting, sound gets the highest priority to the Full Speed. The rest of the computing power is packed into the Frame calculation. Therefore, varying the frame rate. Frameskip = AUTO is almost always the best default setting.

Frameskip = 60 /1 = 60fps is appropriate when one wants to see how the Game runs using all 60 Frames. Unfortunately, only a few games run in full speed in this Mode. The sound is neglected here, so that is always very slow and is still lagging behind.

So if you increase to
Frameskip = 60 / 2 = 30fps then you have half the Frames of an SNES and the sound has enough speed to run at almost full speed. But you cannot synchronize them, why some games run too fast (SNES Games with no built-in synchronization).

Frameskip = 60 / 3 = 20fps to 60 / 9 = ~ 7fps ... Well, you can experiment with this Modes. Esp. with StarFox or any other Special Chip Games.

You can also turn off the sound completely (commandline option "-ns") and select Frameskip=AUTO. Then you have almost perfect emulation, because then all the frames flowing in computing time and no sound need to be calculated.

Furthermore increasing Speed ... uhm that is difficult.

Only if I receive a "Super Doll" written Scaler in MIPS MXU Assembler from anyone ;-) ?

cheers
SiENcE

1 comment:

  1. I've heard about an emulator called snesgo which uses the 65816 CPU emulation code from KEGS, and his autor says that this code is several times faster than the old core (snes9x->pocket snes??? ).
    http://sites.google.com/site/snesgo/

    Don't know if this can help you

    Cheers

    ReplyDelete