Logicielsmoto.com

Nous sommes le 28 Mar 2024, 15:29

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 276 messages ]  Aller à la page Précédente  1 ... 8, 9, 10, 11, 12, 13, 14 ... 19  Suivante
Auteur Message
MessagePosté: 11 Avr 2021, 00:08 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ok j'ai regardé l'original, le Pacman démarre avec direction vers la gauche si on touche aucune direction, j'ai corrigé pour faire fais pareil du coup :oui:

_________________
Image


Dernière édition par adnz le 11 Avr 2021, 21:33, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
MessagePosté: 11 Avr 2021, 16:10 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Je rejoins sam dans le club des vieux... :bah:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 13 Avr 2021, 00:16 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Salut à tous

Je viens aussi de le tester.

Côté programmation et langage machine, ça me parait ok,. Je trouve dommage que le son soit juste du samplong et pas un petit synthé basé sur des échantillons de notes

Côté jeu... Même remarque que mes camarades, pour démarrer Pac-Man est sensé aller directement à gauche et...

L'IA des fantôme me semble être le même pour tous, ils pourchassent parman Y COMPRIS quand ils sont bleu (alors qu'ils sont sensés le fuir dans le cas pour lui permettre de bouffer de gums.. Or ce qu'il se passe est que les fantôme même bleus continuent à aller vers lui. Et le labyrinthe est-il le même que l'original ? J'ai l'impression que c'est assez difficile pour emprunter certaines voies. Et ton labyrinthe est différent de celui que j'avais fait pour Poppy Man, alors que je l'avais calqué sur le Pacman original il me semble (oui c'est confirmé avec cette image Image)

Dernière minute, finalement j'ai passé le premier tableau avec environ 3500 pts. Mais ça n'a rien d'évident comparé au pacman originel dont le labyrinthe est différent.

En tous cas, bravo pour le travail accomplis jusqu'à présent. Reste les bonus (fruits)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 13 Avr 2021, 16:42 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Merci,

- J'ai déjà corrigé le directement à gauche du Pacman après le "Ready" :good:
- j'ai commencé à intégrer la différence d'IA entre les "ghost", mais faut que je factorise en même temps pour libérer des octets sinon j'arrive trop près de 9FFF :D

- pour les fruits va falloir que je trouve de la place et essayer de coder ça avec un minimum d'instruction !
- peut être voir à déplacer du code dans les bank en fonction de l'accessibilité, bref ça cogite :voyons:

et faut que je trouve un autre moyen d'afficher le score, juste l'affichage des digits ça ralenti grave en faite,
ça speed quand je commente le JSR qui display le score !!

...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 13 Avr 2021, 17:12 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Tu redessines tout le score à chaque frame ?
Je ne sais pas quel est ton algo, mais idéalement il faudrait redessiner les chiffres uniquement quand ils changent (et seulement ceux qui changent). C'est peut-être déjà ce que tu fais ?


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 13 Avr 2021, 22:07 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ouais je "display" à chaque frame ! au début c'été pour garder un jeu à vitesse constant !

je vais essayer de "display" seulement quant ça change mais j'ai peur que les couloirs où y'a pas de pacgum le pacman speed plus vite que quant il y en n'a !

faut tester !

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Avr 2021, 07:55 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
C'est quoi qui rame dans l'affichage du score ? L'affichage lui-même ou la conversion binaire->décimale ?

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Avr 2021, 10:24 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
j'ai fais un test de "move" de tout gauche vers tout droite :

Sans le JSR DISPLAY_NUMBER à chaque frame : 3 sec env.
Avec le JSR DISPLAY_NUMBER mais sans le JSR ddf1 à l'intérieur de DISPLAY_NUMBER : 3.5 sec env.
Avec tout : 4 sec env.

1 - y'a un JSR DISPLAY_NUMBER à chaque frame (!!)
2 - DISPLAY_NUMBER c'est l'ensemble (calcul+affichage des digits)
3 - JSR ddf1 c'est l'affichage d'un 1 digit (pour décider quel sprite de la FONT afficher (0,1,2,3,4,5,6,7,8,9) )

et vu que y'a une boucle dans "DISPLAY_NUMBER" sur "ddf1" pour le nombre de digit, plus je veux afficher un nombre avec plus de digit plus ça rame...

Je vois bien que ça peut être optimisé beaucoup mieux que ça...
( rien qu'avec la technique du JMP [A,X] au lieu des CMPA par exemple , je pense )

bon pour être précis faudrait que je fasse un comptage de cycle, mais je sais à vu d'oeil que c'est optimisable beaucoup mieux que ça :oui:

:D

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Avr 2021, 13:22 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
L'affichage des chiffres prends 25% du temps (4 secs vs 3 secs). C'est juste énorme. Oui il faut optimiser cela. Hésite pas à poster le code si tu veux que d'autres te suggèrent des idées.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 00:45 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Bon j'ai un peu update les IA, c'est mieux quand il sont différents déjà :)

- fix affichage du nombre correct des vies restant en bas au re-affichage du tableau après le passage d'un level
- update du hi-score après le gameover si supérieur à l'ancien hi-score qui est en mémoire. (revient à zéro si on quitte le jeu)
Fichier(s) joint(s):
hi-score.png
hi-score.png [ 2.68 Kio | Vu 5693 fois ]


ps: j'ai récupéré plein d'octets, pfff j'avais fait un tableau FCB de 58x40 pour test, que j'utilisais pas !! :langue:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 07:34 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
adnz a écrit:
ps: j'ai récupéré plein d'octets, pfff j'avais fait un tableau FCB de 58x40 pour test, que j'utilisais pas !! :langue:


Bonne nouvelle !


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 13:06 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
adnz a écrit:
Merci,

- J'ai déjà corrigé le directement à gauche du Pacman après le "Ready" :good:
- j'ai commencé à intégrer la différence d'IA entre les "ghost", mais faut que je factorise en même temps pour libérer des octets sinon j'arrive trop près de 9FFF :D

- pour les fruits va falloir que je trouve de la place et essayer de coder ça avec un minimum d'instruction !
- peut être voir à déplacer du code dans les bank en fonction de l'accessibilité, bref ça cogite :voyons:

et faut que je trouve un autre moyen d'afficher le score, juste l'affichage des digits ça ralenti grave en faite,
ça speed quand je commente le JSR qui display le score !!

...


Pour les scores... La technique est, ce pense, que tu aies 2 (ou 1 seul, ça dépend si tu as besoin des valeurs réelles du score pour d'autres usages, ce dont je ne vois pas trop, même en comparant avec le high score) espaces mémoires (3 octets chacun), un pour la version "numérique" (non nécessaire) et une pour la version affichage (en utilisant l'instruction assembleur DAA). Alors si l'ajout dépasse les 256 ça suppose de décomposer en 2 octets
Si, par exemple, tu ajoutes 1500 au score (situé en, disons $9100)

- tu lis l'octet $9102 (le plus à droite) dans A
- tu ajoutes le score de poids faible (de 1500) dans A
- tu fais un DAA sur A
- si dépassement (>255, voir registre CC), drapeau "dépassement" (un registre)
- A=> $9102
- A<= $9101
- ré-appliquer le même processus que précédemment
- A=>$9101
- si dépassement, ajouter 1 à $9100

Ensuite, en supposant que tes chiffres "graphiques" sont dans un certain ordre dans la mémoire.
- tu prend chaque octet de la gauche vers la droite.
- Octet AND 15 => on a un chiffre de 0 à 9
- Avec ce chiffre, on affiche le graphe "chiffre" correspondant (indexé de 0 à 9 avec X*Chiffre octet d'offset) sur l'écran
- Décalage de 4 bits (4 fois LSR) de l'octet A. Réaffichage du chiffre graphique correspondant
- Retour de boucle

3 octets ça correspond à 6 chiffres... après, le Thomson étant limité à 1MHz, le fait que tu aie d'énorme graphismes pour le score, sachant que ça fait 6 sprites, je ne suis pas sûr que ça soit judicieux d'utiliser de si gros sprites pour le score pour la fluidité du jeu. Si le Thomson était à base de 6309 à 4 MHz, yaurait pas de soucis, mais c'est pas le cas.
Cette méthode est très rapide pour l'affichage de scores, à condition qu'il n'y ait pas énormément de gros chiffres à afficher. L'instruction DAA est vraiment utile dans ce cas de figure. Mais elle ne peut êre utilisée que dans le cas d'addition

Pour ce qui est de la comparaison avec le high score, la technique est simple
- prendre chaque octet de la droite à la gauche du score
- si octet_score <hiscore => sortie
- si octet_score>highscore : affichage nouveau highscore : sortie
- octet suivant

L'affichage du highscore est le processus d'affichage du score mais à un autre endroit de l'écran. On peut éventuellement combiner l'affichage simultané du score et du hiscore EN MEME TEMP (si tu as un octet graphique en mémoire à un instant T, tu peux les afficher en même temps en 2 endroits différents, mais ça bouffe la généricité d'une partie du code (celle de l'affichage d'un sprite, à moins d'une astuce)

Pour les fruits. C'est pas compliqué, tu mets juste un affichage du fruit (qui a un indice dans ton "tableau" labyrinthe, juste différent d'une gomme) et pratique un test dessus. Le fruit est juste un élément de décor pendant un certain temps.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 17:16 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Si tu veux gagner du temps et de l'espace il vaut mieux éviter le CMP pour afficher le score. Il faut factoriser.
Tes gfx pour les chiffres font 16 octets.
A l'extraction du chiffre tu l'additionnes à lui même
Code:
ADDA ,A; x2
ADDA ,A; x4
ADDA ,A; x8
ADDA ,A; x16

LDX   .gfxChiffres
LEA   A,X

Cette solution est plus "rapide" que les LSLA et est très utilisée en 68000

Pour comparer le hi-score, il n'y a rien de compliqué si ce dernier est sur 16 bits
Code:
   LDD  .score
   CMPD ,.hiScore
   BLE  .pass
   STD  .hiScore
.pass


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 17:45 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Neotenien a écrit:
- Octet AND 15 => on a un chiffre de 0 à 9

Non! Tu conserves uniquement le poids faible de l'octet soit entre 0 et 15. Avec ANDA ,#9 tu ne conserves que le bit 0 (1) et le bit 3 (8)

Neotenien a écrit:
Si le Thomson était à base de 6309 à 4 MHz, yaurait pas de soucis, mais c'est pas le cas.

On t'a expliqué à plusieurs reprises que le Thomson, même avec un 6309 c'est 1Mhz et pas plus. Point barre.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Avr 2021, 18:24 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
jasz a écrit:
Neotenien a écrit:
- Octet AND 15 => on a un chiffre de 0 à 9

Non! Tu conserves uniquement le poids faible de l'octet soit entre 0 et 15. Avec ANDA ,#9 tu ne conserves que le bit 0 (1) et le bit 3 (8)

Neotenien a écrit:
Si le Thomson était à base de 6309 à 4 MHz, yaurait pas de soucis, mais c'est pas le cas.

On t'a expliqué à plusieurs reprises que le Thomson, même avec un 6309 c'est 1Mhz et pas plus. Point barre.


Ce sait ce que je dis arrête de me contredire pour écrire des conneries qui ne font pas avancer le schmilbick :colere: :colere: :colere:

Et apparemment le DAA tu ne connais pas... monsieur "l'expert". C'est la technique standard pour pour la conversion Binaire Décimale en assembleur.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 276 messages ]  Aller à la page Précédente  1 ... 8, 9, 10, 11, 12, 13, 14 ... 19  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 24 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com