Closed fafling closed 11 months ago
RBG0 coloration is due to Color Window swap.
En version WIP du 19/04, ces problèmes sont quasiment tous résolus. Il reste juste un décalage latéral du framebuffer.
En WIP du 30/04, le décalage latéral est remplacé par un décalage vertical : les sprites sont trop bas.
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é.
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.
Toujours présent en WIP accurate_vdp1 du 13/10.
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) :
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.
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.
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) :
En WIP accurate_vdp1 du 19/10, la zone de clipping du framebuffer est plus petite horizontalement et vericalement que sur la console :
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 : In-game en CS, la rotation du framebuffer est incorrecte et ne correspond pas à celle du RBG0 :
En WIP du 23/01, il y a un décalage des sprites vers la droite en OpenGL :
Le décalage des sprites vers la gauche est fixé en CS, mais la différence d'angle de rotation est toujours présente.
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.
En OpenGL, il y a un décalage à l'écran titre, et plus aucun rotation du framebuffer quand on tourne :
Décalage de l'écran titre toujours présent en OpenGl / CS avec la WIP du 20/10/2020
Décalage de l'écran titre toujours présent en OpenGL / CS avec la WIP du 16 Janvier 2021
Wip du kronos20231122_7fa6739
Correction de l'écran press start screen
@fafling c'est en ou de la rotation du RBG ?
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.
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).
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 :