FCare / Kronos

Kronos is a Sega Saturn emulator.
http://fcare.github.io
235 stars 23 forks source link

[Power drift] Problèmes sur sprites et RBG0 #456

Closed fafling closed 11 months ago

fafling commented 5 years ago

Avec le CD d'origine et bios jap v1.01 ou le bios émulé :

Les captures ci-dessous sont prise après la manip d'affichage des sprites :

FCare commented 5 years ago

RBG0 coloration is due to Color Window swap.

fafling commented 5 years ago

En version WIP du 19/04, ces problèmes sont quasiment tous résolus. Il reste juste un décalage latéral du framebuffer.

Capture_powerdrift20190419

fafling commented 5 years ago

En WIP du 30/04, le décalage latéral est remplacé par un décalage vertical : les sprites sont trop bas. Capture_power_drift_20190430

fafling commented 5 years ago

En fait, quand on tourne à gauche le décalage se fait vers le bas, mais quand ont tourne à droite, il est vers le haut. C'est peut-être le centre de la rotation qui n'est pas bien positionné. Capture_power_drift_20190523

fafling commented 5 years ago

Je confirme que le centre de rotation du framebuffer a l'air positionné sur le bord gauche de l'écran, au lieu d'être au milieu comme celui du RBG0. En WIP du 11/09, le problème concerne les 2 noyaux, OpenGL et compute shader.

fafling commented 5 years ago

Toujours présent en WIP accurate_vdp1 du 13/10.

fafling commented 5 years ago

Presque correct en OpenGL en WIP accurate_vdp1 du 15/10 : la rotation est bien positionnée, par contre, Kronos semble dessiner le framebuffer en-dehors de ses limites. On le voit sur les coins en bas dans les virages. La limite inférieure de la zone dessinée du framebuffer est visible et stable sur la console, or elle clignote dans Kronos. Si on pause l'émulation, on voit des éléments graphiques en trop dans cette zone (ici dans le coin inférieur droit) : image

fafling commented 5 years ago

La zone de dessin définie par le system clipping fait 361x256 (il y a un user clipping plus petit à 320x240, mais les commandes de dessin de l'activent pas). Cette zone est plus grande que l'écran, qui fait 320x240, de façon à limiter la taille de la zone vide dans les coins quand le framebuffer tourne.

Rien à voir avec les problèmes d'affichage de Kronos, mais curieusement le polygone d'effacement est trop petit d'une colonne, il devrait aller jusqu'à 360, mais il s'arrête à 359. Sur la console, quand le framebuffer tourne, on voit effectivement que la colonne de pixels la plus à droite de la zone de dessin n'est jamais effacée et garde des pixels des images précédentes.

fafling commented 5 years ago

En WIP accurate_vdp1 du 18/10, le côté de la zone de dessin apparaît plus à gauche que sur la console et tronque des pixels de texture qui sont visibles sur console. image

Il s'agit de la fin de la 1ère démo du jeu. La colonne de pixel jamais effacée est visible sur ce screenshot de la console (le trait noir en biais dans le coin en haut à droite) : image

fafling commented 5 years ago

En WIP accurate_vdp1 du 19/10, la zone de clipping du framebuffer est plus petite horizontalement et vericalement que sur la console : Capture_power drift_acc_vdp1_20191019_2 image

fafling commented 4 years ago

Situation identique en WIP du 06/12 en OpenGL. En CS, il y a un décalage des sprites vers la gauche visible dès le menu titre : image In-game en CS, la rotation du framebuffer est incorrecte et ne correspond pas à celle du RBG0 : image

fafling commented 4 years ago

En WIP du 23/01, il y a un décalage des sprites vers la droite en OpenGL : image

Le décalage des sprites vers la gauche est fixé en CS, mais la différence d'angle de rotation est toujours présente.

fafling commented 4 years ago

En WIP du 04/04, du progrès en CS : quand on tourne, l'angle de rotation correspond au RBG0, et le troncage en bas des sprites est correct. Par contre, le troncage du haut n'est pas assez prononcé. En prenant comme repère le haut de la barre des pilotes, il se situe au début , au lieu d'être au milieu du 3ème pilote. image

En OpenGL, il y a un décalage à l'écran titre, et plus aucun rotation du framebuffer quand on tourne : image

BenjaminSiskoo commented 4 years ago

Décalage de l'écran titre toujours présent en OpenGl / CS avec la WIP du 20/10/2020

BenjaminSiskoo commented 3 years ago

Décalage de l'écran titre toujours présent en OpenGL / CS avec la WIP du 16 Janvier 2021

BenjaminSiskoo commented 2 years ago

Kronos du 14.01.2022 Mode OpenGl

Décalage du cadre autour des options.

image

savestate : GS-9181_000.zip

BenjaminSiskoo commented 11 months ago

Wip du kronos20231122_7fa6739

Correction de l'écran press start screen

image

@fafling c'est en ou de la rotation du RBG ?

fafling commented 11 months ago

C'est toujours pas tout à fait ça en terme de position du bord de l'image en haut. Il y a maintenant des traits parasites qui apparaissent quand l'écran s'incline. image

fafling commented 11 months ago

Résolu par l'implémentation correcte de la transformation du framebuffer d'affichage quand il est de type rotation au lieu de transformer le framebuffer de dessin (725ce17 et 00bd8cd).