En ces premiers jours de la nouvelle année, je vous adresse mes meilleurs voeux. Et pour ne pas s'arrêter en si bon chemin, Toni Willen propose une nouvelle série de bêta. Voici les premières nouveautés :
- Correction d'une possible corruption graphique dscanline unique si le BPLCON0 était modifié lors du démarrage de la synchronisation horizontale (causée par un correctif de dernière minute de la 4.10.0).
- Le mode de mise à l'échelle de la configuration entrelacée était enregistré comme mode de mise à l'échelle RTG, ce qui pouvait écrire une entrée de configuration incorrecte ou provoquer un crash.
- Lors de l'enregistrement de la configuration, vérification des valeurs d'index des entrées de configuration de type tableau, afin d'éviter tout accès mémoire hors limites si l'entrée est invalide (négative ou trop grande) pour une raison quelconque, comme le bogue ci-dessus. L'entrée de configuration est un numéro d'index interne, l'index est utilisé pour sélectionner la valeur de l'entrée du fichier de configuration. Si une valeur invalide est détectée, un message est enregistré et l'écriture de l'entrée de configuration est ignorée.
- Suppression de l'option inutile "Scanlines" dans les paramètres supplémentaires du filtre PAL.
- Le curseur matériel RTG en mode GDI n'était pas complètement désactivé lorsque l'Amiga émulé était réinitialisé.
- Le curseur GDI laissait des déchets à l'écran si les coordonnées du sprite matériel étaient négatives.
- Prise d'une capture d'écran, DF0 : est activé mais vide et le lecteur de CD est activé mais pas vide : sélectionner le nom de l'image du CD.
- Désactivation du mode de commutation automatique du joystick gauche/droite (il était trop facile de le faire accidentellement sans remarquer ce qui se passait). Seuls les boutons sont supportés maintenant. Amélioration du texte de description de l'option de commutation automatique dans le popup.
- Le déclenchement de l'interruption Vblank était 2 cycles trop tard. (Cracked The deep hang). C'était censé être correct mais probablement certains résultats de test ont été mal compris. Ou quelque chose comme ça.
- Écriture de cuivre dans DMACON qui désactive le DMA de cuivre : cuivre s'est arrêté 1 cycle trop tôt. (Le premier mot d'instruction de l'instruction cuivre suivante est toujours récupéré).
- L'écriture dans la DMACON qui active ou désactive le DMA du blitter lorsque le blitter est en marche n'était pas totalement précise en termes de cycles. Maintenant elle l'est. (La méchanceté du blitter était déjà correcte)
- Encore un autre conflit de sprite DMA trouvé (merci encore à Ross) et émulé. Si le DMA du sprite est activé exactement 3 cycles avant le slot DMA du sprite, la décision DMA est prise et le pointeur du sprite est augmenté mais le slot n'est pas alloué, le transfert DMA n'a pas lieu et le bus RGA apparaît en état de repos (0x01FE). Si un autre canal DMA alloue le même slot, il y a conflit et les opérations habituelles AND du bus RGA et OR du pointeur DMA se produisent. Bitplane ou blitter semblent être les seuls canaux qui peuvent entrer en conflit dans cette situation. Le CPU peut également utiliser ce cycle en toute sécurité. (Pourquoi les sprites ont-ils 2 types différents de conflits non documentés et étranges ?).
- Le comportement de l'interruption DSKSYNC du disque a été ajusté (je n'ai pas encore effectué de tests appropriés pour le confirmer complètement), le bit INTREQ DSKSYN ne semble être activé que lorsque le bit interne DSKBYTR WORDEQUAL passe de 0 à 1, car aucun lecteur n'est sélectionné (la valeur de la mémoire tampon interne est statique) et provoque une correspondance DSKSYNC : DSKBYTR WORDEQUAL est égal à 1 mais l'interruption ne se produit qu'une seule fois (par exemple, le fait de régler DSKSYNC sur une valeur non correspondante et de revenir à une valeur correspondante génère une seule interruption. Le fait de réécrire la même valeur ne génère pas de nouvelle interruption). Ce comportement n'a jamais été précis et certaines versions avaient des bidouillages différents. Espérons que ce comportement soit plus correct. (Retrovision / Insane et d'autres dont je ne me souviens pas)
- Certaines opérations de chronométrage utilisaient encore d'anciens contrôles de timer 32-bit wrap around qui peuvent donner de mauvais résultats avec le nouveau compteur de cycle interne 64-bit. Affectait le mode vsync standard.
- Effacement de la liste du panneau des disques durs lors du chargement de la configuration matérielle uniquement.
- Les entrées de configuration spécifiques à la plate-forme ("win32. ???") étaient réservées à l'hôte. Séparées en entrées de configuration de l'hôte et du matériel. Déplacement de win32.rtg_vblank vers la configuration matérielle (cela ne devrait plus être dans la configuration spécifique à la plate-forme...).
- Correction du DMA du plan de bits volant le DMA du sprite d'une unité (b1)
- Les entrées de configuration spécifiques au matériel de la plate-forme n'étaient pas analysées correctement et étaient ignorées (b1)
- Le conflit sprite/blitter B1 n'était pas fiable (effets secondaires non précis dans certaines situations, probablement personne ne s'en soucie vraiment comme d'habitude...)
- Le bit DSKBYTR WORDSYNC était précédemment effacé automatiquement après un court délai. Maintenant il reste actif tant que DSKSYNC correspond. C'était une très vieille solution de contournement pour un ancien et mauvais comportement de WORDSYNC. Chargez DSKBYTR seulement quand des données valides sont disponibles. Le HW réel ne semble pas charger DSKBYTR quand seulement des zéros sont lus. (Probablement que DSKBYTR n'est pas chargé si la PLL n'est pas verrouillée).
>>>
Télécharger :
WinUAE 4.10.10 - Bêta 2 - 32 Bits
J'espère que tu as passé de bonne fêtes :)