FCare / Kronos

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

[Dino Island (Japan)] Le menu est remplacé par des rectangles noir (VDP1) #1477

Open BenjaminSiskoo opened 10 months ago

BenjaminSiskoo commented 10 months ago

kronos20231130_75bb84e

VDP1 on

image

VDP1 off : on voir le menu mais pas la partie transparente qui permet de voir ou on est sur le menu

image

fafling commented 9 months ago

L'affichage en v2.5.0 publique est correct : image

Le problème apparaît en extui-align avec le merge de la branche syncTiming en WIP du 23/08/2023 (ec9e827).

La color calculation est activée sur les sprites avec une condition sur le MSB de la couleur qui doit valoir 1 : image

Commande de dessin en v2.5.0 publique avec le couleur correcte (la dernière WIP la montre noire) : image

La texture 4bpp color bank est en 0x05C10000 en VRAM VDP1 : image

Chacun de ses pixels vaut 1. Associé à la color bank, les pixels dessinés dans le framebuffer valent 0xC001. Le type de sprite du VDP2 est 0, donc les 11 bits de poids faible du pixel du framebuffer donnent l'index dans la color RAM qui est 1. Cet index est modifié par le color RAM offset à 3. On obtient donc comme index 3 * 256 + 1 = 769. La color RAM est en mode 1, donc avec des couleurs BGR555 16 bit, l'adresse de la couleur est obtenu en multipliant l'index par 2. Elle est donc en 0x05F00602. La valeur est différente à cet endroit entre la v2.5.0 publique (0xFFFF, correct car donne du blanc semi-transparent), et la dernière WIP (0x0000, donne du noir opaque) : image

En fait, les 8 couleurs de 0x05F00600 à 0x05F0060F sont différentes.

Testé avec le CD.

BenjaminSiskoo commented 9 months ago

kronos20231216_f235e2e

Corrigé

fafling commented 9 months ago

@BenjaminSiskoo C'est toujours présent chez moi. Testé avec CD et redump, avec reset du kronos.ini, de la bkram et reboot du pc. Tu peux rouvrir ?