Why the Gamebuino META defaults to 25FPS

Development

Sorunome

6 years ago

25 vs 30 FPS dates back to the introduction of an AC power grid: in the USA the AC power grid uses 60Hz, while in europe it uses 50Hz.
Later on, when telivision came, USA had NTSC at 30FPS, and europe later on PAL at 25FPS (I won't go into the others here).

For movies it was determined that, starting 20FPS, the human usually recognizes something as being "one motion", which is why the Gamebuino Classic uses that as a default.
That being said, movies run at 24FPS to give four extra frames buffer, in case something goes wrong.

Now, will anybody really notice the difference between 25FPS and 30FPS content? There are probably a few people who say they can notice a difference, but to the vast majority there is no noticable difference.

The main reason many are like "bruuhuuu i want my 30/60/120FPS" as opposed to 25/50/100 is, that, well, the USA being the USA pushed their standard down the computer industries throught.
As a fun fact: Digital television, at least here in germany, is still at 25/50FPS.

using 25/50 fps gives another advantage: the amount of milliseconds a frame takes is an even number: 1000/25 = 40, as opposed to 1000/30 = 33.33333..... So you would actually be running a bit below 30FPS anyways.

Running at 25FPS also gives the CPU more time to do other calculations.

DFX2KX

NEW 6 years ago

yeah, for most folks, they can't tell the difference between 25 and 30 without having them side by side and pointed out. And 30 to something like 60 really do need a side-by-side comparison unless one has quite good eyesight. Most of the improved quality of higher framerates comes from the panels used on those monitors being better to begin with in my experience.

And indeed, the more cycles between frame updates the fancier the effects it'll be possible to do.

Aurélien Rodot

6 years ago

As an ex-gamer I can tell difference between 30 and 60 without side by side *bragging*.

But what's the point when your pixel art animations run at 12 FPS :P

Aurélien Rodot

NEW 6 years ago

DFX2KX DFX2KX

As an ex-gamer I can tell difference between 30 and 60 without side by side *bragging*.

But what's the point when your pixel art animations run at 12 FPS :P

DFX2KX

6 years ago

okay, valid point there!

dreamer3

NEW 6 years ago

For smooth animation at low resolutions such as we're talking about I can easily tell the difference between 30 and 60 FPS.  One will be pixel smooth and the other is going to skip pixels for fast moving objects.

DFX2KX

NEW 6 years ago

Aurélien Rodot Aurélien Rodot

okay, valid point there!

ZappedCow

NEW 6 years ago

Is there any hardware limitation at the level of the TFT for not using 30FPS/60FPS?

Aurélien Rodot

6 years ago

The SPI bus between the CPU and the screen is the bottleneck, you can reach about 55FPS but you'll have no free CPU time left. People feel games are smooth at 25FPS and it leave quite some free CPU for non-optimized games, so we don't need more. But you can if you want :)

Aurélien Rodot

NEW 6 years ago

ZappedCow ZappedCow

The SPI bus between the CPU and the screen is the bottleneck, you can reach about 55FPS but you'll have no free CPU time left. People feel games are smooth at 25FPS and it leave quite some free CPU for non-optimized games, so we don't need more. But you can if you want :)

jicehel

NEW 6 years ago

I think about change the FPS in game to change speed of a game (will down it at start and make it grow with level without going upper than 50 for security). Is it a good idea to manage time in the main loop ?

Aurélien Rodot

6 years ago

It's strongly not advised to rely on frame rate to change game speed, because the frame rate also controls music playback, buttons update etc.

There are many other ways to change your game speed and/or difficulty ^__^

Aurélien Rodot

NEW 6 years ago

jicehel jicehel

It's strongly not advised to rely on frame rate to change game speed, because the frame rate also controls music playback, buttons update etc.

There are many other ways to change your game speed and/or difficulty ^__^

erico

NEW 6 years ago

As a movie/special fx makers, I can tell the diference from 30fps to 29,97fps... :D
25 is great for many reasons. Good for our screen size / resolution and tech and closer to the more cinematic 24fps (which I prefer).

I pretty much agree fully with Sorunome here. Also, the low resolution has to be considered, at that one, there is really no point into a faster FPS unless your are playing a movie. A sprite bumping left and right at certain speed has no benefit from a 120fps ... the machine would re-render the same position plenty of times since you don´t have pixels to display such (or something like that).

ZappedCow

NEW 6 years ago

Oh well I also though the SPI was the bottleneck. Thanks for your reply.


I was mostly asking this for portability to desktop computers. This means we can't vsync...

DFX2KX

6 years ago

not only that, the Vsync pin on the LCD controller isn't connected, so the META doesn't have that functionality.

DFX2KX

NEW 6 years ago

ZappedCow ZappedCow

not only that, the Vsync pin on the LCD controller isn't connected, so the META doesn't have that functionality.

Nux

NEW 6 years ago

As gamer and to have play on low cost computer for many year, I join Aurélien Rodot. The confort from getting a good one (and 60fps) is real when there is movement in the game.


Quick anecdote: On day I was playing on a  friend computer for waiting other to join the party and after 1-2 min i turn to him :
Me: " wtf, this is strange i can't tell why but i fell like your game is super smooth. this is on my computer too, but on your this is more."

He got a big smile, slightly raise his eyebrow and give me a gentle tap on the shoulder than say:

"120 Hz screen, you should buy one ;)"


While I am not able to tell my current FPS, I  got many situation in my life that push me to think that I am able to know if the game is more or less smooth than what I am use and FPS have impact on it. So IMO, Even if on the one hand movie are smooth at 24FPS . On the other hand video game are not smooth at low fps and we can see difference even above 60 fps and this movie theorie don't work .


But this depend of the game and on gamebuino 25 fps is fine for what i want to do with it.

Yoh

NEW 6 years ago

Don't take this the wrong way but the original post does not make a lot of sense to me.  It does not answer the question, exept in the last sentence.

 Handheld consoles were never affected by the pal/ntsc signals so I don't know why it is mentionned and used as a justification. It is a home console matter.  

Even for home consoles, the real norm for framerate is 60hz, enlighted gamers from a 50hz region would mod their consoles if they could.

Most of handhelds consoles had a ~60hz refresh rate (because it is the norm) and games were 60 fps unless they were too demanding.  Wonderswan is even 75hz. When I think handheld gaming I think 60 fps like about all gameboy games are, and I think most handheld gamers are the same. Smooth framerate is also part of the joys of 2D gaming, fps discussions really started with 3D gaming.

So I am surprised that you chose such a low default framerate for your handheld and I when I entered this topic I was looking for answers and did not find them.  

If it can do 50 fps why is that not the default framerate with 25 only used when needed? Is the console not powerful enough for running most projects in 50fps smoothly? Is 50fps smoothness not something you value and 25 good enough for you? Any real reason for choosing 25/50 over the usual 30/60? Those are the explanations that would be needed in my opinion.


I'm not sure if Sorunome is part of the gamebuino team since he lives in Germany but this post is mentionned on the color palette article so I suppose it is endorsed by the gamebuino devs.

Sorunome

6 years ago

Don't take this the wrong way but the original post does not make a lot of sense to me.  It does not answer the question, exept in the last sentence.

Don't worry, that is why this is a discussion, to discuss things! I'll try to answer your questions

 Handheld consoles were never affected by the pal/ntsc signals so I don't know why it is mentionned and used as a justification. It is a home console matter.  

To be honest, I'm not sure if handhelds were effected. I can easily see that they weren't as run by DC battery, thus 100% independent of the AC power.

Even for home consoles, the real norm for framerate is 60hz, enlighted gamers from a 50hz region would mod their consoles if they could.

Now, while I'm sure there are hardcore gamers that like to switch their devices this will only be possible on newer consoles. And, that being said, the vast majority of people playing games on a video console won't ever try to jailbreak it or thelike.

So I am surprised that you chose such a low default framerate for your handheld and I when I entered this topic I was looking for answers and did not find them.  

This topic was meant more as a debate of 25FPS vs 30FPS problem. We have to send every frame the full screen out, which is 160 * 128 * 2 = 40960 bytes, which is 327680 bits. Sending over SPI at 24MHz results in needing 13.6ms only to send the data alone. At 25FPS we have a time of 40ms to refresh the screen, at 50FPS we have 20ms. Calculating in screen sending, that leaves us at 26.4ms computation time at 25FPS and 6.4ms at 50FPS.

Now, why don't we have a quicker screen or something? As i mentioned here the meta doesn't have any graphics chip thelike, as any other handheld consoles had, thus the meta CPU itself has to do the screen stuff, while on the other handheld console the CPU was free to do whatever during this time.

If it can do 50 fps why is that not the default framerate with 25 only used when needed?

I think i answered this by now, to leave more free calculation time for the game

Is the console not powerful enough for running most projects in 50fps smoothly?

You have to keep in mind we have no kind of graphics chip at all, all the graphics are CPU-driven.

Any real reason for choosing 25/50 over the usual 30/60?

Two main reasons: first, a little bit more computation time, and second, 25FPS means each frame lasts 40ms, easily realizable via software. 30FPS means each frame lasts 33.3333333......ms so, realistically you'd have 33ms per frame which results in 30.303FPS. Kinda ugly and, well, the tradeoff of 7ms for the 5 extra FPS aren't really that worth it, if you consider how high CPU usage is already if you stream sound from the SD card etc.


That all being said, you are of course free to pick your own framerates for your games! That is done via gb.setFrameRate(), so default is gb.setFrameRate(25);


I'm not sure if Sorunome is part of the gamebuino team since he lives in Germany but this post is mentionned on the color palette article so I suppose it is endorsed by the gamebuino devs.

  • she (don't worry, many get this wrong ^^)

Yes, I am part of the Gamebuino Team, in fact, I'm the one doing most of the programming for the META (Library, etc.) Yes, I am from Germany and am actually still in University, I work for the Gamebuino Team part-time next to my studies! Good thing that programming can easily be done remotely ^.^

Sorunome

NEW 6 years ago

Yoh Yoh

Don't take this the wrong way but the original post does not make a lot of sense to me.  It does not answer the question, exept in the last sentence.

Don't worry, that is why this is a discussion, to discuss things! I'll try to answer your questions

 Handheld consoles were never affected by the pal/ntsc signals so I don't know why it is mentionned and used as a justification. It is a home console matter.  

To be honest, I'm not sure if handhelds were effected. I can easily see that they weren't as run by DC battery, thus 100% independent of the AC power.

Even for home consoles, the real norm for framerate is 60hz, enlighted gamers from a 50hz region would mod their consoles if they could.

Now, while I'm sure there are hardcore gamers that like to switch their devices this will only be possible on newer consoles. And, that being said, the vast majority of people playing games on a video console won't ever try to jailbreak it or thelike.

So I am surprised that you chose such a low default framerate for your handheld and I when I entered this topic I was looking for answers and did not find them.  

This topic was meant more as a debate of 25FPS vs 30FPS problem. We have to send every frame the full screen out, which is 160 * 128 * 2 = 40960 bytes, which is 327680 bits. Sending over SPI at 24MHz results in needing 13.6ms only to send the data alone. At 25FPS we have a time of 40ms to refresh the screen, at 50FPS we have 20ms. Calculating in screen sending, that leaves us at 26.4ms computation time at 25FPS and 6.4ms at 50FPS.

Now, why don't we have a quicker screen or something? As i mentioned here the meta doesn't have any graphics chip thelike, as any other handheld consoles had, thus the meta CPU itself has to do the screen stuff, while on the other handheld console the CPU was free to do whatever during this time.

If it can do 50 fps why is that not the default framerate with 25 only used when needed?

I think i answered this by now, to leave more free calculation time for the game

Is the console not powerful enough for running most projects in 50fps smoothly?

You have to keep in mind we have no kind of graphics chip at all, all the graphics are CPU-driven.

Any real reason for choosing 25/50 over the usual 30/60?

Two main reasons: first, a little bit more computation time, and second, 25FPS means each frame lasts 40ms, easily realizable via software. 30FPS means each frame lasts 33.3333333......ms so, realistically you'd have 33ms per frame which results in 30.303FPS. Kinda ugly and, well, the tradeoff of 7ms for the 5 extra FPS aren't really that worth it, if you consider how high CPU usage is already if you stream sound from the SD card etc.


That all being said, you are of course free to pick your own framerates for your games! That is done via gb.setFrameRate(), so default is gb.setFrameRate(25);


I'm not sure if Sorunome is part of the gamebuino team since he lives in Germany but this post is mentionned on the color palette article so I suppose it is endorsed by the gamebuino devs.

  • she (don't worry, many get this wrong ^^)

Yes, I am part of the Gamebuino Team, in fact, I'm the one doing most of the programming for the META (Library, etc.) Yes, I am from Germany and am actually still in University, I work for the Gamebuino Team part-time next to my studies! Good thing that programming can easily be done remotely ^.^

Yoh

NEW 6 years ago

Thanks for the answer.  If you can't reach 60 then indeed 25 vs 30 is not a big deal and I understand that it makes calculation simpler.

I am a bit less interested in the Meta if you are forced to use a low framerate to have enough calculation power. 

I was hoping that we could have gbc/wonderswan color type of games. Maybe it's because direct assembly coding would be needed to achieve 50 fps and still have enough calculation power?

 But I guess devs just adapt and make nice 25 fps games. To each is own, still a cool project.

I am already infuriated when I play some of the NGPC games at 30 fps x)  Even a simple puzzle game (eg puzzle link 2 vs puzzle bobble).

I can only amicably encourage you to play/study more retro consoles especially handhelds because some parts of your posts seems a bit clueless :) And I'm far from being an expert myself.

Sorunome

6 years ago

Yeah, the main thing is that the GBC used separate chips for graphics, sound etc. and the META has to CPU-drive all of that. That overhead isn't to be underestimated.