Implement Option: Skip Frames #1010

Closed
hellow554 opened this Issue Aug 26, 2016 · 14 comments

Comments

Projects
None yet
6 participants
@hellow554

hellow554 commented Aug 26, 2016

I would like to see a option in the debug menu, where you can disable the fps limit, so the game runs faster (like some snes/gba/... emulator can do). It's not about increasing the fps to something higher, so the game runs smoother, but to make it faster. I hope you get the idea :)

  • Visual indication
  • Android-support
@ItsSchoko

This comment has been minimized.

Show comment
Hide comment
@ItsSchoko

ItsSchoko Aug 26, 2016

When i recall correct in some emulators the option to run games faster (but not smoother) is called "skip frames". (Just to have a term here)

ItsSchoko commented Aug 26, 2016

When i recall correct in some emulators the option to run games faster (but not smoother) is called "skip frames". (Just to have a term here)

@hellow554 hellow554 changed the title from Disable FPS Limit to Implement Debug Option: Skip Frames Aug 26, 2016

@hellow554

This comment has been minimized.

Show comment
Hide comment
@hellow554

hellow554 Aug 26, 2016

Thanks for the clarification. Updated the title description. :)

Thanks for the clarification. Updated the title description. :)

@Rinnegatamante

This comment has been minimized.

Show comment
Hide comment
@Rinnegatamante

Rinnegatamante Aug 26, 2016

Member

In reality skip frames and framerate unlock are two different things:

"Unlock framerate" means the player can go over 60 FPS (in retail games it's like if you play with VSync disabled).
"Skip frames" means you discard a couple of frames every second to improve average framerate (if you discard too much frames, you'll have pretty bad rendering similar to stuttering).

Member

Rinnegatamante commented Aug 26, 2016

In reality skip frames and framerate unlock are two different things:

"Unlock framerate" means the player can go over 60 FPS (in retail games it's like if you play with VSync disabled).
"Skip frames" means you discard a couple of frames every second to improve average framerate (if you discard too much frames, you'll have pretty bad rendering similar to stuttering).

@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Aug 26, 2016

Member

Implementing this should not be too difficult. So accepting this as an enhancement. Concerning frameskip: We are not an emulator, like any modern game the rendering (FPS) runs independend of the game logic (no idea what the term is, lets call them updates per seconds UPS). The player tries to run at constant 60 UPS, to achieve this it can reduce the frame rate (FPS). This is shown in the corner, when it falls below 30 you will notice extreme lag. So to make the game run faster the UPS must be increased and the fps can stay constant. The frameskip is mostly noticeable on slow hardware like the 3ds. Without frameskip it would run maybe at half speed but we get normal speed with skipped frames.

And we would also require to make the music faster (which is completely independend of anything in an extra thread) because games can query the current position and can break when it is wrong.

This is also the reason why message fast forward (shift in debug mode) is not enabled in general: It causes race conditions because events finish faster then normal and breaks some games.

Member

Ghabry commented Aug 26, 2016

Implementing this should not be too difficult. So accepting this as an enhancement. Concerning frameskip: We are not an emulator, like any modern game the rendering (FPS) runs independend of the game logic (no idea what the term is, lets call them updates per seconds UPS). The player tries to run at constant 60 UPS, to achieve this it can reduce the frame rate (FPS). This is shown in the corner, when it falls below 30 you will notice extreme lag. So to make the game run faster the UPS must be increased and the fps can stay constant. The frameskip is mostly noticeable on slow hardware like the 3ds. Without frameskip it would run maybe at half speed but we get normal speed with skipped frames.

And we would also require to make the music faster (which is completely independend of anything in an extra thread) because games can query the current position and can break when it is wrong.

This is also the reason why message fast forward (shift in debug mode) is not enabled in general: It causes race conditions because events finish faster then normal and breaks some games.

@Ghabry Ghabry added the Enhancement label Aug 26, 2016

@BlisterB

This comment has been minimized.

Show comment
Hide comment
@BlisterB

BlisterB Aug 28, 2016

Member

Ow @Ghabry, if you allow to accelerate the game, please put an option to not accelerate musics and sounds.
I think 90% of gamers has play to game like Pokemon constantly using Frame Skipping to have a decent game speed, but the quicker music is really annoying.

Member

BlisterB commented Aug 28, 2016

Ow @Ghabry, if you allow to accelerate the game, please put an option to not accelerate musics and sounds.
I think 90% of gamers has play to game like Pokemon constantly using Frame Skipping to have a decent game speed, but the quicker music is really annoying.

@Ghabry Ghabry added this to the 0.5.1 milestone Oct 4, 2016

Ghabry added a commit to Ghabry/easyrpg-player that referenced this issue Oct 4, 2016

Provide speedup through "F" button (*5) and Super speedup through F +…
… PLUS (*10). This only speeds up the game logic because is much faster, the renderer still runs at 60 FPS.

On Wii mapped to "Minus".

Fix #1010
@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Oct 4, 2016

Member

I want to propose the following for this:
Ghabry@769596e

The advantage over zegeris solution is that only the "game updates" are increased, not both (graphics + game updates). This means that muuuuch higher update rates are possible on slow hardware because the slowest part is the graphic rendering and rendering the graphics faster is not necessary because this runs decoupled from the update logic.
With that patch the graphic rendering stays at 60 FPS and the game updates go up to 300 (F) or 600 (F + PLUS).

Not increased: Music/Sound speed (is more work and some people don't like it) and transitions (this is a bug in our transition code we have to fix someday >.>)

And no visual indication (yet)

Member

Ghabry commented Oct 4, 2016

I want to propose the following for this:
Ghabry@769596e

The advantage over zegeris solution is that only the "game updates" are increased, not both (graphics + game updates). This means that muuuuch higher update rates are possible on slow hardware because the slowest part is the graphic rendering and rendering the graphics faster is not necessary because this runs decoupled from the update logic.
With that patch the graphic rendering stays at 60 FPS and the game updates go up to 300 (F) or 600 (F + PLUS).

Not increased: Music/Sound speed (is more work and some people don't like it) and transitions (this is a bug in our transition code we have to fix someday >.>)

And no visual indication (yet)

Ghabry added a commit to Ghabry/easyrpg-player that referenced this issue Oct 4, 2016

Provide speedup through "F" button (*5) and Super speedup through F +…
… PLUS (*10). This only speeds up the game logic because is much faster, the renderer still runs at 60 FPS.

On Wii mapped to "Minus".

Fix #1010
@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Oct 15, 2016

Member

No idea where to post this but is debug related so: Cherry told me about "FatalMix RPG_RT" and is maybe of interest for @Zegeri and other devs:
http://blog.livedoor.jp/haienasan/archives/1412729.html

Download the corresponding zip and then your RPG_RT has features like: 3 - Speedup x4, Q instant save (see the readme, tons of stuff)

Member

Ghabry commented Oct 15, 2016

No idea where to post this but is debug related so: Cherry told me about "FatalMix RPG_RT" and is maybe of interest for @Zegeri and other devs:
http://blog.livedoor.jp/haienasan/archives/1412729.html

Download the corresponding zip and then your RPG_RT has features like: 3 - Speedup x4, Q instant save (see the readme, tons of stuff)

Ghabry added a commit to Ghabry/easyrpg-player that referenced this issue Oct 24, 2016

Provide speedup through "F" button (*5) and Super speedup through F +…
… PLUS (*10). This only speeds up the game logic because is much faster, the renderer still runs at 60 FPS.

On Wii mapped to "Minus".

Fix #1010
@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Mar 6, 2017

Member

The OSD button candidate for Android is 'BLACK RIGHT-POINTING DOUBLE TRIANGLE' (U+23E9) , Unicode 6.0, I hope Android 2.3.3 supports this glyph.

Member

Ghabry commented Mar 6, 2017

The OSD button candidate for Android is 'BLACK RIGHT-POINTING DOUBLE TRIANGLE' (U+23E9) , Unicode 6.0, I hope Android 2.3.3 supports this glyph.

@BlisterB

This comment has been minimized.

Show comment
Hide comment
@BlisterB

BlisterB Mar 8, 2017

Member

Is there a fast forward feature implemented :o ?
Does it use a fix "keyboard" button ? That's how I call Player's button.

Member

BlisterB commented Mar 8, 2017

Is there a fast forward feature implemented :o ?
Does it use a fix "keyboard" button ? That's how I call Player's button.

@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Mar 8, 2017

Member

Fast forward is not merged yet but the button will be "F" and Android gets a new osd button

Member

Ghabry commented Mar 8, 2017

Fast forward is not merged yet but the button will be "F" and Android gets a new osd button

@BlisterB

This comment has been minimized.

Show comment
Hide comment
@BlisterB

BlisterB Mar 8, 2017

Member

Okay, I'll try to implement that this week-end.
I don't know if that has been decided but I don't think this should be enable just for debug mode. Everyone loves fast forwarding :).

Member

BlisterB commented Mar 8, 2017

Okay, I'll try to implement that this week-end.
I don't know if that has been decided but I don't think this should be enable just for debug mode. Everyone loves fast forwarding :).

@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Mar 9, 2017

Member

no this is always on. Uhhhm, if you want to do this post a patch here, dont do a pr

Member

Ghabry commented Mar 9, 2017

no this is always on. Uhhhm, if you want to do this post a patch here, dont do a pr

Ghabry added a commit to Ghabry/easyrpg-player that referenced this issue Mar 9, 2017

Provide speedup through "F" button (*5) and Super speedup through F +…
… PLUS (*10). This only speeds up the game logic because is much faster, the renderer still runs at 60 FPS.

On Wii mapped to "Minus".

Fix #1010
@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Mar 9, 2017

Member

How the speedup indicator looks:

screenshot_0screenshot_1

Have less games on this pc, hehe

Android follows tomorrow.

Member

Ghabry commented Mar 9, 2017

How the speedup indicator looks:

screenshot_0screenshot_1

Have less games on this pc, hehe

Android follows tomorrow.

@Ghabry

This comment has been minimized.

Show comment
Hide comment
@Ghabry

Ghabry Mar 10, 2017

Member

@BlisterB
I quickly added a Fast Forward button

Member

Ghabry commented Mar 10, 2017

@BlisterB
I quickly added a Fast Forward button

@Ghabry Ghabry changed the title from Implement Debug Option: Skip Frames to Implement Option: Skip Frames Mar 12, 2017

@carstene1ns carstene1ns closed this in #1122 Mar 13, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment