Pas testé en 50Hz mais les résultats risques d'être.... inattendues
Si vous obtenez un affichage avec 1 ligne sur 2, arrêtez et relancer jusqu'à ce que vous obteniez bien une image complète.
Bon, en ces temps de COVID où on se fait passablement chier, je me suis dit "bon.... et si je faisais mumuse avec le félin pour passer le temps..."
Bonne idée... après.... quelques 10aines d'années sans avoir touché une ligne de code...
Alors en ce début de we après avoir installé vite fait le kit de dev d'origine (version1995) et DOSBOX histoire de pouvoir compiler avec make....
Voilà le résultat. c'est crade, pas optimisé pour un sous (mais alors pas du tout), et en plus ça ne fonctionne pas à 100% du 1er coup.
Mais c'est rigolo
Alors qu'est ce que sexe ?
C'est donc la version d'exemple de fractal Mandelbrot du kit de dev que j'ai "légèrement" modifié.
Pour ceux qui ne savent pas la version d'origine s'affiche en 256*200p et le calcul fractal s'effectue en partie via le 68000 et l'autre partie (la plus "lourde") via le GPU
Les modifications apportées (quand ça fonctionne) :
La plus évidente c'est la résolution, qui passe en full 640*480i (oui, entrelacé, et c'est chiant l'entrelacé sur Jaguar !)
Et puis j'ai converti entièrement le calcul fractal en GPU. Par contre, c'est du brutal, optimisation 0 ou pas loin.
Autres petites modifications, j'ai raccourcis le temps d'attente du logo et cette version fonctionne entièrement en RAM. Donc si vous avez une SkunkBoard pas besoin d'attendre 3 heures que ça charge la flash.
Le gain par rapport à la version d'origine (mais en 640*480 quand même) est de 10 sec. 30sec au lieu de 40.
Et par rapport à la version d'origine 256*200... bah c'est quand même nettement plus beau !
Passons aux problèmes... Il y en a 2.
J'ai passé le plus de temps à essayer de faire fonctionner l'entrelacé qu'autre chose !
J'ai bien compris que visiblement il y avait un bug dans la gestion de l'entrelacé qui fait que le processeur objet n'incrémente pas correctement YPOS en mode entrelacé (1 ligne au lieu de 2) et qu'en plus il faut manuellement changer la valeur de VI à chaque VBL pour prendre en compte les trames paires et impaires.
Bug ou pas d'ailleurs car il n'y a quasi aucune information sur le mode entrelacé dans la documentation, il y a peut être une raison... Peut être y a t il un registre caché pour activer le bon fonctionnement ...
Bref, j'ai fais de multiples test dans tous les sens, je me suis basé sur les informations de zerosquare et de... je ne sais plus qui sur Jagware et..... et ben ça ne fonctionne jamais correctement.
En utilisant ma méthode, bourin, qui consiste juste à mettre la valeur 524 dans VP à la fin du code d'initialisation vidéo, ça fonctionne.... aléatoirement... mais c'est le meilleurs résultat que je peux obtenir !
Si j'essaie n'importe quelle autre méthode je n'obtient pas mieux voir 100% d'échecs. Même en utilisant le code d'initialisation complète de la vidéo de Zerosquare, là par exemple c'est 100% d'échecs.
Alors que ce passe t il exactement : et bien avec ma méthode bourin donc, environ... une fois sur.... 2 voir moins, en lançant depuis SkunkGUI vers la SkunkBoard, j'obtient une ligne sur 2 !
Une ligne sur 2, mais en entrelacé ! Après divers essais j'ai découvert qu'en fait quand il n'y a qu'une ligne sur 2 c'est parce que l'interruption sur les trames impaire ne se produit jamais !
Autre problème, pour l'image fractal seulement, si j'utilise la méthode "propre" de centrage de l'image du code d'origine ou même en essayant certaines valeurs absolues, les lignes paires et impaires se retrouvent inversées !
La encore pour contourner le problème j'ai du utiliser des valeurs spécifiques (0 en Y et 32 en X).
En attendant, ENJOY !
