DCMOTO - Emulateur universel Thomson 8 bits : Forum - Programmation - changement valeur palette
Retour : Accueil » Programmation
Pages : 1 - 2
Auteur Message
Fool-DupleX
Visiteur
Date : 17/02/2005 à 14h02
Yoann: pour ce qui est des calculs de 3D j'ai deja une idee ...

Fool
en haut - en bas
jasz
Visiteur
Date : 17/02/2005 à 21h17
Fool-DupleX a dit
"Ce genre de chose n'a-t-il pas deja ete fait dans la megademo ? (a verifier)"

Non, je ne pense pas car je parle du water mégascroll de la froggy over the fence. C'est trés sympa.

Fool-DupleX a dit
"Je hacke des petites routines de 3D ces temps(...)"
"pour ce qui est des calculs de 3D j'ai deja une idee ..."

Je serai curieux de voir ça car déja sur un atari la matrice 3d prend beaucoup de tm, je ne sais pas si le thomson arrivera à boucler la vbl. A moins de précalculer les données x, y et z et de ne faire travailler que la drawn rout.
en haut - en bas
Fool-DupleX
Visiteur
Date : 18/02/2005 à 09h53
Hehe.

Je me base sur un seul critere : Ils l'ont fait sur Sinclair Spectrum, avec flat shading tramé, et c'est un Z80 avec un systeme graphique encore plus penible a programmer que sur thomson. Donc c'est possible.

Mais tu as raison : il y a aura enormement de precalcul, mais tout de meme suffisamment peu pour ne pas se limiter a une animation en boucle de quelques secondes. Y'a pas de mystere, on va pas faire du Radeon avec un MO5. L'essentiel a mon avis est de ne pas trop devoiler les "trucs", une demo a mon sens c'est comme un tour de magie, c'est epatant quand on connait pas l'astuce.

Fool
en haut - en bas
jasz
Visiteur
Date : 18/02/2005 à 22h40
?????
en haut - en bas
jasz
Visiteur
Date : 18/02/2005 à 23h54
Il y a une chose que tu négliges c'est la vitesse d'horloge... le zx 80 est cadencé à 3,5 Mhz


Pour les "??????" c'est tout simplement du au fait que je ne suis pas en accord avec toi. Mais je peux me tromper. ;).

J'ai une routine atari sous les yeux pour 64 pts. Franchement elle prend plus de tm que ma routine soundtrack. Donc si tu as une astuce en dehors du précalcul tu peux nous en faire part.
en haut - en bas
Fool-DupleX
Visiteur
Date : 20/02/2005 à 11h44
oui il est cadence a 3.5 MHz, mais as-tu remarque qu'il faut 2 a 3 fois plus de cycles d'horloge pour des instructions equivalentes ? par consequent la puissance de calcul est plus proche qu'on ne le pense. Je ne dis pas equivalente ou meilleure, seulement proche.

non non la plupart de mes astuces consistent bien en du precalcul je te rassure.

Fool
en haut - en bas
jasz
Visiteur
Date : 20/02/2005 à 19h26
Cela m'étonne que de simples instructions de base comme charger une valeur dans un accumulateur ou déposer cette même valeur à telle adresse prennent plus de tm qu'un thomson.

Mais grace au précalcul ta routine a des chances de fonctionner, il suffit simplement de bien construire ta routine de traçage.
en haut - en bas
Fool-DupleX
Visiteur
Date : 21/02/2005 à 10h22
Je n'en suis pas a mon coup d'essai et je sais ce que je fais, pas de souci.

Pour la comparaison Z80 / 6809 voici quelques exemples :

6809 sur Thomson : 1 MHz
Z80 sur Sinclair : 3.58 MHz

Nombre de cycles CPU pour des instructions equivalentes prises au hasard :
NOP : 6809 = 2, Z80 = 4
LD 16 bits dans accumulateur : 6809 = 3, Z80 = 10
Increment 8 bits : 6809 = 2, Z80 = 4
Jump on carry : 6809 = 3/3, Z80 = 7/12
push : 6809 = 5+ 1 cycle par registre supplementaire (on peut les enchainer), Z80 = 11 par registre !

En moyenne, le 6809 a frequence egale est entre 2 et 4 fois plus rapide selon les instructions. Allez disons 3 fois en moyenne grossiere. Et le rapport de frequence n'est que de 3.58 pour les machines.

Je me suis souvent demande ce qu'il se serait passe si Thomson avait cadence son 6809 a 2 MHz. Le cpu supportait cette cadence deja a l'epoque, mais ca aurait necessite un design un peu plus pousse du reste de la carte mere. Enfin, on ne refait pas l'histoire

Fool
en haut - en bas
jasz
Visiteur
Date : 21/02/2005 à 20h19
Je dois avouer mon ignorance du z80.

Mais je me demande pourquoi faire une vitesse à 3,5 si les opérandes prennent deux fois plus qu'un simple 1. Manoeuvre commerciale?
en haut - en bas
Fool-DupleX
Visiteur
Date : 21/02/2005 à 23h45
Le choix de 3.58 MHz n'est pas un hasard. C'est la frequence de la sous-porteuse couleur en PAL. Il est ainsi facile de se rappeler par exemple la frequence du CPU de l'Amiga : 7.16 MHz (2*3.58) !

Cadencer le coeur de la machine a 3.58 MHz permettait de s'affranchir des problemes lies a la synchro entre la logique de la carte mere et l'analogique de la sortie ecran composite. On sortait ainsi une image un peu baveuse a moindre frais.

A contrario, les Thomson utilisent une sortie RVB avec un bitrate de 8 MHz et le signal de synchro sur la ligne composite. Tout televiseur Peritel s'en sort donc a merveille pour sortir une image super-precise. L'inconvenient evident c'est que ca ne marche que sur les TV peritel ! (sacres francais... )

Le Z80 est connu pour ne pas etre un foudre de guerre. Mais c'etait un CPU tres repandu car bon marche deja a l'epoque. Les gens un peu plus serieux optaient plutot pour le 6502 (C64). Cependant le Z80 a quelques instructions subtiles ainsi qu'un jeu de registres jumeaux qui permettent certaines pirouettes interessantes.

La question se poserait donc plutot en termes inverses : Pourquoi Thomson a choisi une frequence aussi basse ?

Fool
en haut - en bas
eric
Visiteur
Date : 22/02/2005 à 02h52
effectivement, mais de plus une frequence d'horloge superieur ne signifi pas une plus grande performance ... la programation des entrees sorties sur un z80 etait une gymnastique ... accrobatique !!! alors que sur 6809 ou meme 6502 c'est hyper simple ... enfin ca date pour moi , mais j'ai souvenir d'avoir ramé a adapter des routines sur cpc ou sinclair alors que de to8 a apple ii c'etait trop facil !!!
en haut - en bas
jasz
Visiteur
Date : 22/02/2005 à 07h07
Pour revenir à ta routine 3d. Essais de simplifier au max pour permettre à d'autres routines (scroll texte par exemple) de tourner avec.

De plus de mon côté, je vais également alléger le travail du cpu en limitant la boucle qui génère le digit. C'est à dire que au lieu d'avoir 216 octets on aura 80 octets. Le temps gagner permettra peut-être à ta routine de tourner avec un fond sonore type soundchip.

Mais ce n'est qu'une théorie
en haut - en bas
Pages : 1 - 2