Rinnegatamante / easyrpg-player-3ds

EasyRPG Player port for 3DS.
GNU General Public License v3.0
13 stars 1 forks source link

Freeze on cutscenes #14

Open Rinnegatamante opened 8 years ago

Rinnegatamante commented 8 years ago

It looks like the interpreter can't handle properly cutscenes. During such scenes, framerate is 0 on both N3DS and O3DS.

Ghabry commented 8 years ago

A link to the affected game would be nice to test this on faster systems.

Rinnegatamante commented 8 years ago

Basically any single game with a cutscene is affected by this problem. I noticed this problem in Zelda Link's Awakening (where the whole game runs also at pretty low fps but it can be referred to screen tone issue at least for ingame framerate maybe) and in Grimm Adventures ( http://gbatemp.net/attachments/scr_34_combined-png.43660/ )

Ghabry commented 8 years ago

That's not really a cutscene but just clever event scripting with pictures. Tested this on a 3DS now and I guess it's so slow because for this text animation it has to load one picture per animframe and this is super slow as you already noticed. It's even noticable when a message box appears ingame that it has a delay because loading the Face graphic takes too long :(

Ghabry commented 8 years ago

This is probably only fixable with asynchronous IO (IO in an extra thread). But this would require changing the whole Player code to achieve this. We already provide Async file access for the web version but that's not suitable because this solved a different problem (waiting for file download), the IO itself is synchrionous. So I don't expect a fix for this in the next months, they have to life with this.

Rinnegatamante commented 8 years ago

Can't this be mitigated at least with JPG images support for Pictures since libjpeg-turbo is really fast on decoding images? (lpp-3ds for example provides a video decoder based only on libjpeg-turbo for MJPEG decoding that can handle videos at 30 fps without framedrops with CPU software rendering).

Ghabry commented 8 years ago

The Player doesn't support JPEG and no game uses JPEG.

We should figure out first if it's the file access that is slow or the libpng usage. But I bet it's the access.

Rinnegatamante commented 8 years ago

When i was working on the video decoder i tried also to use PNG frames instead of JPG ones and at least for lodepng (the decoder i use on lpp-3ds for PNG files), it wasn't able to handle videos with a good framerate cause decoder was SLOOOOOW (it went at like 3-4 fps).