Kronos icon indicating copy to clipboard operation
Kronos copied to clipboard

[Sonic 3D Blast] Problèmes avec la synchro verticale

Open fafling opened this issue 6 years ago • 3 comments

L'option General > Enable Frame Skip/Limiter ne fait quelque chose que si elle est décochée alors que ça devrait être l'inverse. Elle ne semble efficace que pour diminuer le frame rate quand il dépasse 60 (pour un jeu NTSC) : j'ai le cas sur l'écran titre de Sonic 3D (version japonaise) qui grimpe à 70-80 FPS.

Bizarrement dans ce jeu, le limiteur ne reste pas actif : si on laisse une demo se lancer, puis on revient à l'écran titre en appuyant sur start, le framerate dépasse 60. Le limiteur ne remarche que si on appuie 2 fois sur F4 ou si on affiche et referme une fenêtre de dialogue à partir du menu de Kronos. Le frame skip n'a pas l'air de marcher quand le framerate descend en-dessous de 60.

Il y a le même comportement en v1.6.0 et dans la dernière WIP.

fafling avatar Apr 26 '19 16:04 fafling

Suite au renommage de l'option et aux derniers patchs la concernant, le comportement est un peu différent. Si l'option est activée, le framerate dépasse toujours 60 quand j'arrive sur l'écran titre. La limitation à 60 que l'option est sensée faire ne marche que si j'affiche puis ferme une fenêtre du menu (paramètres, écrans debug…) ou si j'appuie 2 fois sur F4 pour désactiver puis réactiver l'option.

Même comportement qu'avant si je laisse une démo se lancer et que je revient à l'écran titre : la limitation ne marche plus.

Je laisse de côté la partie frame skipping qui n'est pas sensée marcher.

fafling avatar May 23 '19 21:05 fafling

En v2.6.1 publique, les dépassements de framerate n'ont plus lieu.

Par contre, il y a d'autres problèmes qui sont apparus avec la synchro verticale de Kronos activée :

  • Le framerate VDP2 est presque toujours limité à 58-59/60 quand il est à fond, ce qui introduit des irrégularités dans la musique et des sautes de frames très fréquentes, au moins une par seconde. Ces sautes de frames sont visibles quand on se déplace in game car le jeu tourne à 60 fps. Cette limitation apparaît à 58-59 entre le 23 et le 26/11/2022, peut-être avec https://github.com/FCare/Kronos/commit/39f62a8e4b9a6cc11d245cde84aafad74c8f534a. Je précise que la fréquence de mon écran est 60 Hz, et que si je désactive la synchro verticale dans Kronos et que je l'active dans les options de mon driver vidéo (carte Nvidia GTX 750 TI), j'obtiens un framerate de 60 dans Kronos.
  • Une piste CD audio accélère au bout d'environ 30 s de playback. J'ai testé sur la musique du niveau 1, qui est la piste CD n°5 et dure 3 mn 11 s (durée confirmée en la chronométrant sur la console). Je chronomètre la piste dans Kronos à 3 mn 04 s. Le problème est audible in game et dans le multiplayer. Il apparaît en WIP du 11/12/2023 (46c12d6). La WIP précédente du 08/12 (ef11f70) ne l'a pas. Dans cette dernière, je chronomètre la piste à 3 mn 15 s, et si je désactive la synchro de Kronos et que j'active celle du driver video, je chronomètre la piste à sa durée correcte, 3 mn 11 s.

Une video qui montre ces 2 problèmes sur l'écran du multiplayer (avec un beau bégaiement sonore en début de video) : https://www.youtube.com/watch?v=QuRKkSRoprU J'ai désactivé la synchro verticale de Kronos en fin de video pour bien montrer que c'est bien elle qui limite le framerate à 58-59.

Testé avec le CD jap et l'ISO redump.

fafling avatar Dec 29 '23 02:12 fafling

Même problème ici avec la dernière version sur RetroArch, "Sync to exact content framerate" + VRR devrait avoir un scrolling parfait mais ce n'est absolument pas le cas. Par ailleurs quel est le fps utilisé pour NTSC/PAL ? J'ai l'impression que c'est 60.0/50.0 au lieu de 59.83/49.92.

https://github.com/FCare/Kronos/blob/extui-align/yabause/src/libretro/libretro.c info->timing.fps = (retro_get_region() == RETRO_REGION_NTSC ? 60.0f : 50.0f);

J'ai trouvé la source pour le core libretro mais pas pour Kronos standalone.

Immersion95 avatar Sep 07 '24 12:09 Immersion95