Page 1 sur 1

[DCMOTO] Sortilèges

Publié : 11 juin 2021 00:09
par __sam__
Quand j'utilise sortilèges (TO8D, FD) avec la dernière version beta de DCMOTO j'ai droit à un crash sitôt après avoir choisi l'option "2" dans le menu de selection des jeux.

En fouillant mes archives de téléchargement j'ai pu constater que ca marche avec la version 2020.01.26 et qu'avec la 2020.11.08 ca ne marche plus. Il y a donc un truc changé entre les deux dates qui fait planter le jeu Sortilèges sur diskette.

J'ai essayé de sortir une trace d'execution pour trouver le plantage, mais heuu.. c'est difficile car il y a plein d'appels au basic, à l'extramon, au moniteur. Néanmoins j'ai trouvé un truc suspect ici:

Code : Tout sélectionner

0E10 F762B0     STB    $62B0               D=1000 X=0000 Y=E0F0 U=6262 S=6086 DP=60 CC=D5 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
0E13 7F624A     CLR    $624A               D=1000 X=0000 Y=E0F0 U=6262 S=6086 DP=60 CC=D5 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
0E16 3504       PULS   B                   D=1000 X=0000 Y=E0F0 U=6262 S=6086 DP=60 CC=D4 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
0E18 10DE75     LDS    <$75                D=1040 X=0000 Y=E0F0 U=6262 S=6087 DP=60 CC=D4 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
0E1B C147       CMPB   #$47                D=1040 X=0000 Y=E0F0 U=6262 S=0000 DP=60 CC=D4 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
0E1D 2707       BEQ    $0E26               D=1040 X=0000 Y=E0F0 U=6262 S=0000 DP=60 CC=D9 | Banques: SYST=0 ROM=1 RAM=02 MEMO=0 VIDEO=1
Le registre de pile passe à 0 suite à un LDS <$75 (DP=60), et donc l'adresse $6075 ne contient pas ce que la rom attends. Peut-être que cela traduit une anomalie antérieure dans le flux d'execution, mais ce qui est certain est que déjà là ca part en cacahuète.

Re: [DCMOTO] Sortilèges

Publié : 11 juin 2021 10:44
par Daniel
Bien vu ! Plus précisément le problème est apparu entre les versions 2020.05.03 et 2020.06.04 de dcmoto.
C'est une erreur d'initialisation du bit 0 du registre PCR du 6846 (mis à 0 lors du chargement d'une disquette alors qu'il faut le mettre à 1).
Je ne maîtrise pas encore totalement le 6846, c'est un circuit très complexe.

Le problème des régressions après une modification me préoccupe depuis longtemps (pas seulement pour dcmoto), mais je ne sais pas le résoudre. Avec plus de 1000 programmes Thomson, je vois mal comment les tester tous à chaque fois qu'une instruction de l'émulateur est modifiée. C'est pourquoi le signalement des bugs par les utilisateurs est absolument nécessaire. Merci __sam__ 8)

J'ai mis en ligne la version 2021.06.11, en espérant qu'elle n'ait pas d'autres conséquences négatives : http://dcmoto.free.fr/emulateur/index.html

Re: [DCMOTO] Sortilèges

Publié : 11 juin 2021 11:03
par __sam__
Arf on s'est croisé. En plus j'ai corrigé le message je parlais du jeu Vampire qui figure aussi sur la diskette mais alors que je voulais parler de Sortilèges.

Bon je teste.. ca a l'air OK :)

Par rapport à l'automatisation des tests de non regression, n'as tu pas pensé aux solutions types autoit qui permette de rejouer le même scenario sur un programme windows en simulant les appels aux menu, les clicks souris, etc. Nous autres pourrions te soumettre des scripts pour reproduire un bug, et par la suite ces mêmes scripts peuvent servir à approvisionner la batterie de tests de non-regression.

Il existe d'autres outils d'automatisation des tests comme Sikuli que j'ai un peu vu (ce n'est pas mon métier, mais les gars de la qualité chez nous l'ont utilisés un temps dans ma boite pour automatiser les tests de non-regression de certains outils.)