How to make the speed multiplayer fractional?

General area for talk about ZSNES. The best place to ask for related questions as well as troubleshooting.

Moderator: ZSNES Mods

Post Reply
Griffrez
New Member
Posts: 5
Joined: Sat Jun 15, 2013 3:07 pm

How to make the speed multiplayer fractional?

Post by Griffrez »

Hey, guys. As you can see, this is my very first post on these forums.

I got a question:

I've been playing a bit of Final Fantasy VI (III, if you're American.), and I got a tiny problem that annoys me a bit. The standard speed is a bit slow for me, and since this is an emulator, I might as well boost the speed, right?! Maybe.

The 2x speed is already TOO FAST. So, my question is, is there a way to have a fractional speed multiplayer, like 1.5x, or 1.25x, etc.?

I actually tried to have a quick read at the config file, and I did find a line of text that intrigued me: "Fast-forward multiplicator is currently inaccurate". That seems to be my case, because, honestly, the supposed "2x" seems more like "4x" or something like that! Really!

Is there any workaround for this? Thank you in advance!
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Re: How to make the speed multiplayer fractional?

Post by grinvader »

It's inaccurate but hard to tell by how much (plus it can vary depending snes and actual computer workloads) and yeah, it goes way faster than the displayed value (at least until you max out your cpu).
The current core doesn't let you throttle it easily for slightly faster speeds.

Before you ask, the 'percentage to execute' option may look like something that does it, but it causes instability for several games.

This feature is on The List (tm), so... patience, as usual.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
paulguy
Zealot
Posts: 1076
Joined: Sat Jul 02, 2005 2:01 am
Contact:

Re: How to make the speed multiplayer fractional?

Post by paulguy »

If your monitor supports frame rates over 60, there is I believe a trick that involves turning the auto frame skip off and turning vsync on, and zsnes is then synced to display refresh. Sound will probably be ass though. I might have missed something.
Maybe these people were born without that part of their brain that lets you try different things to see if they work better. --Retsupurae
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Re: How to make the speed multiplayer fractional?

Post by grinvader »

Sound while fast-forwarding will be affected regardless method, so that looks as good as it gets right now.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Griffrez
New Member
Posts: 5
Joined: Sat Jun 15, 2013 3:07 pm

Re: How to make the speed multiplayer fractional?

Post by Griffrez »

Well. You mentioned that it depended on how much the CPU is loaded, so I was going to try and mess around with the CPU Core Affinity and Priority, and try to narrow down the power that is being delivered to ZSNES, but, unfortunately, W8 does not support that, apparently. Turning off Auto Frame Skip and turning on VSync (my monitor supports 75Hz), seems to have broken the speed up function.

EDIT: Trying it again, the speed function is working, and at a more desirable speed, with the tweak you mentioned. It is significantly faster, but not as crazy fast. This will work somewhat fine until a more permanent solution is available. Any other input you might have in consideration, I'd be more than grateful for such. Thank you for your time and consideration.
Griffrez
New Member
Posts: 5
Joined: Sat Jun 15, 2013 3:07 pm

Re: How to make the speed multiplayer fractional?

Post by Griffrez »

By the way:

You guys questioned yourself how much inaccuracy the multiplicative had.

I kinda came to a very short baked conclusion, that might, or might not be correct, and that can help debug the issue.

What about... the square of the multiplicative.
Supposed = Actual
1x speed = 1x speed; Seems right, hein?
2x speed = 4x speed; That's how I felt
3x speed = 9x speed;
(...)
nx speed = (n^2)x speed;

What do you guys think?

EDIT: Could also work both ways, I mean, for slow downs as well!

1/1 speed = 1/1 speed; Obvious, nuh?
1/2 speed = 1/4 speed;
1/3 speed = 1/9 speed;
(...)
1/n speed = 1/(n^2) or 1/n speed = ((1/n)^2) speed; (same thing)

I dunno, I just started speculating, and hope this somehow helps the ZSNES community. Probably not, but, worth a try.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Re: How to make the speed multiplayer fractional?

Post by grinvader »

Nah, it's related to how fast-forward is done compared to slow-mo.

The current core doesn't have variable throttling, so fast-forward is achieved by skipping rendering frames, but the skipping code doesn't work as expected. I never got around to having a serious look at it, and it's kinda moot since we have to change the whole thing anyway. :p
Slow-mo on the other hand is pretty accurate timing-wise, using a blitting loop to delay updates.

Of course, those are pretty hackish ways to pull it (it's a huge source of desyncs because some stuff gets updated while others aren't), and having a core-side throttle is the ideal solution.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Griffrez
New Member
Posts: 5
Joined: Sat Jun 15, 2013 3:07 pm

Re: How to make the speed multiplayer fractional?

Post by Griffrez »

grinvader wrote:Nah, it's related to how fast-forward is done compared to slow-mo.

The current core doesn't have variable throttling, so fast-forward is achieved by skipping rendering frames, but the skipping code doesn't work as expected. I never got around to having a serious look at it, and it's kinda moot since we have to change the whole thing anyway. :p
Slow-mo on the other hand is pretty accurate timing-wise, using a blitting loop to delay updates.

Of course, those are pretty hackish ways to pull it (it's a huge source of desyncs because some stuff gets updated while others aren't), and having a core-side throttle is the ideal solution.
Are you guys planning to change the core (or whatever is the appropriate language) completely in the version 2 of the emulator, that includes a fix for this?
odditude
Official tech support dood
Posts: 2118
Joined: Wed Jan 25, 2006 7:57 am

Re: How to make the speed multiplayer fractional?

Post by odditude »

yes. complete and total overhaul.
Why yes, my shift key *IS* broken.
Griffrez
New Member
Posts: 5
Joined: Sat Jun 15, 2013 3:07 pm

Re: How to make the speed multiplayer fractional?

Post by Griffrez »

If that's so, can't wait! :D But no pressure from me. I know this is a hobby and I've read a bunch of Threads about how many people think that ZSnes is outdated and dead, etc. and I never intended to make any pressure to you guys with this Thread.
Post Reply