[Alice] Gestion de la Vsync
Modérateurs : Papy.G, fneck, Carl
[Alice] Gestion de la Vsync
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
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
Re: [Alice] Gestion de la Vsync
Tu peux poster ton code sur Pastebin et tu mets le lien ici
- fneck
- Site Admin
- Messages : 17541
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [Alice] Gestion de la Vsync
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
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
- fneck
- Site Admin
- Messages : 17541
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [Alice] Gestion de la Vsync
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.
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
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [Alice] Gestion de la Vsync
décidément c'était ma semaine de Bugs
Re: [Alice] Gestion de la Vsync
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é
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
Règle numero uno : toujours filtrer les données envoyées par un utilisateur :
[edit Fabien] J'ai créé un nouveau sujet pour en parler viewtopic.php?f=14&t=15108 [/edit]
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é
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
Règle numero uno : toujours filtrer les données envoyées par un utilisateur :
Code : Tout sélectionner
<?php
echo htmlspecialchars($str);
?>
Re: [Alice] Gestion de la Vsync
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.
Si c'est le cas il faut d'abord lire TGS dans R1.
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: [Alice] Gestion de la Vsync
@Duruti: Consultes les pages 89 à 91 de l'ouvrage "Les Astuces d'Alice 32 et 90" présent sur le site de Daniel.
C'est ici: http://alice32.free.fr/documentation/index.html
C'est ici: http://alice32.free.fr/documentation/index.html
Re: [Alice] Gestion de la Vsync
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.
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.
Re: [Alice] Gestion de la Vsync
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 :
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
Voilà le binaire de la cartouche pour lancer EXEC 4096
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
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
Re: [Alice] Gestion de la Vsync
je teste ton binaire ce soir
Re: [Alice] Gestion de la Vsync
@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 !!!
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 !!!
Re: [Alice] Gestion de la Vsync
On ne peut pas faire confiance à dcalice pour la Vsync, car il n'émule pas l'EF9345 assez fidèlement.
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.
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.
L'obstacle augmente mon ardeur.