[Alice] Gestion de la Vsync

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

[Alice] Gestion de la Vsync

Message par Duruti »

Bonjour

J'ai fait une routine pour me caler sur la VSync , sur émulateur cela fonctionne mais bien sur pas sur la machine
Je voudrais savoir si ça venait de mon code

Pour me caler je lis le registre R0 du EF9345 et je teste le bit 2
est-ce la bonne méthode ?

P.S : j'arrive pas a poster mon code j'ai une erreur 502 bad Gateway
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] Gestion de la Vsync

Message par David.G »

Tu peux poster ton code sur Pastebin et tu mets le lien ici :wink:
Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

Re: [Alice] Gestion de la Vsync

Message par Duruti »

lien pastebin du code

https://pastebin.com/WM1jsQHj
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] Gestion de la Vsync

Message par David.G »

Image
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17541
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Alice] Gestion de la Vsync

Message par fneck »

Duruti a écrit : 04 févr. 2024 20:11 P.S : j'arrive pas a poster mon code j'ai une erreur 502 bad Gateway
On avait déjà trouvé ce bug... probablement un bug de phpBB, je n'ai pas retrouvé le message. C'est une suite de quelques caractères précis qui provoque systématiquement le plantage.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17541
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Alice] Gestion de la Vsync

Message par fneck »

En essayant avec ton code j'ai retrouvé que c'est la suite de caractères #% 00 (sans l'espace au milieu) qui plante phpBB (ou le forum). Même en la mettant dans la recherche ou recherche via Google ça plante !

Je n'ai pas retrouvé le topic dont je parlais, je ne me rappelle pas si on avait trouvé une solution.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

Re: [Alice] Gestion de la Vsync

Message par Duruti »

décidément c'était ma semaine de Bugs :lol:
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice] Gestion de la Vsync

Message par David.G »

J'ai trouvé le bug :

Si vous mettez 2 zéro juste après le signe pourcentage dans un message, ce n'est pas filtré et provoque une éxécution du code, d'où le plantage.

Ah, Fabien m'a devancé :wink:

Cela s'appelle une NULL BYTE INJECTION et c'est une faille de sécurité sérieuse. Voici comment s'en prévenir :

https://www.chiny.me/null-byte-injection-14-7.php

Image

Règle numero uno : toujours filtrer les données envoyées par un utilisateur :

Code : Tout sélectionner

<?php
echo htmlspecialchars($str);
?>
[edit Fabien] J'ai créé un nouveau sujet pour en parler viewtopic.php?f=14&t=15108 [/edit]
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice] Gestion de la Vsync

Message par Dominique »

A tout hasard : La VSync ne se lit-elle pas sur le registre indirect TGS ?

Si c'est le cas il faut d'abord lire TGS dans R1.
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice] Gestion de la Vsync

Message par Patrice »

@Duruti: Consultes les pages 89 à 91 de l'ouvrage "Les Astuces d'Alice 32 et 90" présent sur le site de Daniel. :wink:

C'est ici: http://alice32.free.fr/documentation/index.html
Avatar de l’utilisateur
6502man
Messages : 12333
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Alice] Gestion de la Vsync

Message par 6502man »

C'est pas aussi simple pour le Vsync.

Tout dépend de la commande VSM ou VRM, il faut activer le bit de synchronisation avec la commande VSM/VRM.

Après le bit Sync de R0 est actif, sur émulateur ca fonctionne dans tous les cas mais évidemment pas sur machine réelle.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Duruti
Messages : 118
Inscription : 26 janv. 2024 19:43
Localisation : Haute-Loire
Contact :

Re: [Alice] Gestion de la Vsync

Message par Duruti »

Alors voilà où j'en suis, je me suis basé sur vos messages et le datasheet du 9345
notamment sur le VRM (voir page 36 du datasheet)

j'ai fait un programme qui déplace une lettre toutes les secondes via un timer incrementé a chaque Vsync
ça fonctionne sur l'Alice , mais sur émulateur je suis 4 fois plus lent
voilà mon code :

Pour l'initialisation :

Code : Tout sélectionner

   
   ldaa #% 10000001 ; veux écrire dans le TGS via R1 
   staa R0
   ldaa #% 10000 ; passe TGS4 à 1 
   staa R1+EXEC 
   jsr busy ; attends la fin du traitement par le 9345

   ldaa #% 10010101 ; passe en VRM pour se synchroniser sur Vsync
   staa R0+EXEC 
   jsr busy
puis pour le test de la Vsync, j'attends que ça passe a 0 puis j'attends que ça passe a 1 comme expliqué pour la VRM

Code : Tout sélectionner

vbl0 ; attend que Vsync soit a 0
   	ldaa R0
   	anda #% 00000100
 	bne vbl0
vbl1 ; attend que Vsync soit a 1
   	ldaa R0
   	anda #% 00000100
 	beq vbl1
 	

Voilà le binaire de la cartouche pour lancer EXEC 4096
Pièces jointes
Vsync.zip
(257 octets) Téléchargé 14 fois
Brochiman
Messages : 3546
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Alice] Gestion de la Vsync

Message par Brochiman »

je teste ton binaire ce soir 😊
Avatar de l’utilisateur
6502man
Messages : 12333
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Alice] Gestion de la Vsync

Message par 6502man »

@Duruti: oui c'est bien ca,
mon précèdent message n'était pas très clair, je voulait dires que sur l'émulateur dans tous les cas on à un résultat plus ou moins rapide,
alors que sur la machine réelle ca fonctionne que si on à activé le bit Sync !!!
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Alice] Gestion de la Vsync

Message par Daniel »

On ne peut pas faire confiance à dcalice pour la Vsync, car il n'émule pas l'EF9345 assez fidèlement.
La datasheet a écrit :S2 = VBL status
reset for 2 TV lines per frame and stays at 1 during the remaining period

L'émulateur n'a pas la notion de ligne de balayage, il connaît uniquement les lignes de caractères.
Il positionne S2 à 0 pendant une ligne de caractères, soit dix lignes de balayage.

D'autre part l'EF9345 est toujours considéré comme "prêt" par l'émulateur, alors qu'en réalité il est occupé par chaque opération pendant un temps variable.
Daniel
L'obstacle augmente mon ardeur.
Répondre