[VG5000µ] sprites multicolores pour le BASIC et l'assembleur

Cette catégorie traite de développements récents pour 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

joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

Papy.G a écrit : 03 avr. 2020 12:05
Je n'invente rien, c'est dans la datasheet du composant, mais c'est possible avec 16ko de VRam, avec 8ko, cette possibilité est rognée par l'espace pris par la page-écran (de 1 à 3ko maximum selon les modes), et celui pris par les autres jeux de caractères personnalisables, sans ces derniers, on peut envisager de remplir un écran (sans la ligne d'état) de tuiles uniques en mode double-hauteur (5x2x100=1000).
Il faut alors utiliser la ram du VG5000 pour office de vram de l'EF9345?
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Carl »

en recâblant l' EFI9345 avec 16Ko de ram ?
9345.jpg
9345.jpg (89.54 Kio) Consulté 3968 fois
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

J'y ai pensé. Mais je ne veux pas toucher à mon VG5000. Je demande à PapyG s'il existe une solution purement logicielle avec le VG5000 pour adresser plus de 4 jeux quadrichromes.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G »

joaopa a écrit : 03 avr. 2020 21:25Il faut alors utiliser la ram du VG5000 pour office de vram de l'EF9345?
Non, ce n'est ni possible, ni nécessaire. :wink:
Carl a écrit : 03 avr. 2020 21:40en recâblant l' EFI9345 avec 16Ko de ram ?
Non plus. :P
Et cela pourrait éventuellement poser des problèmes avec certains programmes (si le 9345 voit deux fois les 8ko dans son espace d'adressage et que des programmes en tirent parti).
joaopa a écrit : 03 avr. 2020 22:04J'y ai pensé. Mais je ne veux pas toucher à mon VG5000. Je demande à PapyG s'il existe une solution purement logicielle avec le VG5000 pour adresser plus de 4 jeux quadrichromes.
Rien n'indique dans le manuel qu'il n'est pas possible d'adresser plus de 4 jeux quadrichromes, en fait, on peut utiliser autant de jeux que de 'blocs' disponibles, car chaque caractère a ses attributs propres qui vont jusqu'à sélectionner dans quel jeu il est pioché, et donc, si cinq, ou six blocs sont libres, on peut utiliser cinq ou six jeux quadrichromes.

Peut-être même qu'en utilisant que 12 lignes dans l'espace d'affichage principal (en doublant la hauteur des lignes sur tout l'écran, au lieu de doubler la hauteur des caractères individuellement), on peut utiliser l'autre moitié des blocs inutilisés, au prix de l'impossibilité de faire du scrolling vertical avec le mode "rouleau", ou, en longueur variable, si tous les caractères d'une ligne partagent les mêmes attributs, on pourrait utiliser le reste du bloc des attributs pour stocker des caractères supplémentaires. Ce ne sont que des hypothèses extrêmes, mais on n'est déjà pas au bout de ce qui peut être fait pour en arriver là, et le sacrifice des possibilités nécessaire ne le vaudrait peut-être pas.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour l'assembleur

Message par rendomizer »

Je me suis encore trompé de fichier merde désolé les gars.
cload "v13 generateur" puis for i= 26670 to 26670+10: poke i,0: next i puis call 20480

Code : Tout sélectionner

Vous implantez les codes caractères des sprites qui sont construits à partir de 26670 jusqu'à 26670+(12*80). ex: sprite 1 off codes caractères correspondants sont le 32,33, 34,35, 36,37, 38,39 ex: sprite 2 off codes caractères correspondants sont le 40,41, 42,43, 44,45, 46,47 et vous les pokez à partir de l'adresse 29220 jusqu'à 29220+2590. Les adresses pairent pour le code caractère et impair pour la couleur .

************************************************************************************************************************

Voici les adresses des commandes des sprites

************************************************************************************************************************

construction des sprites en -----call $5E88 à ne faire qu'une seule fois.

adresse du programme en----------call $5Eaa 

adresse des sprites:

la couleur est fournit par l'éditeur le sprites maker lors de l'enregistrement de vos créations.

Pour les collisions il faut prendre le coin superieur gauche du sprite.
sprite 1  adresse 26576  sur 1 on sur 0 off


sprite 2 adresse 26577 sur 1 on sur 0 off

sprite 3 adresse 26578 sur 1 on sur 0 off

sprite 4 adresse 26579 sur 1 on sur 0 off

sprite 5 adresse 26580 sur 1 on sur 0 off

sprite 6 adresse 26581 sur 1 on sur 0 off

sprite 7 adresse 26582 sur 1 on sur 0 off

sprite 8 adresse 26583 sur 1 on sur 0 off

sprite 9 adresse 26584 sur 1 on sur 0 off

sprite 10 adresse 26585 sur 1 on sur 0 off

sprite 11 adresse 26586 sur 1 on sur 0 off

sprite 12 adresse 26587 sur 1 on sur 0 off

color sprite 1 adresse 26588

color sprite 1 adresse 26589

color sprite 1 adresse 26590

color sprite 1 adresse 26591

color sprite 1 adresse 26592

color sprite 1 adresse 26593

color sprite 1 adresse 26594

color sprite 1 adresse 26595

color sprite 1 adresse 26596

color sprite 1 adresse 26597

color sprite 1 adresse 26598

color sprite 1 adresse 26599

position x adresse 26600 sprite 1

position y adresse 26601 sprite 1

position x adresse 26602 sprite 2

position y adresse 26603 sprite 2

position x adresse 26604 sprite 3

position y adresse 26605 sprite 3

position x adresse 26606 sprite 4

position y adresse 26607 sprite 4

position x adresse 26608 sprite 5

position y adresse 26609 sprite 5

position x adresse 26610 sprite 6

position y adresse 26611 sprite 6

position x adresse 26612 sprite 7

position y adresse 26613 sprite 7

position x adresse 26614 sprite 8

position y adresse 26615 sprite 8

position x adresse 26616 sprite 9

position y adresse 26617 sprite 9

position x adresse 26618 sprite 10

position y adresse 26619 sprite 10

position x adresse 26620 sprite 11

position y adresse 26621 sprite 11

position x adresse 26622sprite 12

position y adresse 26623sprite 12



Caractères alphanumériques ex pour afficher un " A " il faut le code caractere 65, "B " 66...

pour afficher un zero code caractere 48 et pour afficher un " 1 " code caractere 49



couleur de caractere adresse 26624

code caractere adresse          26625

position x (0 39)    adresse     26626

position y (5 31)      adresse     26627



mode multicolor adresse 26628 = code $d8 hex  / mono standare alphanumerique adresse 26628 =0

La couleur du caractere est comme suit:

8*16=128+couleur(0 à 7) pour un fond noir

8*18=144+couleur(0 à 7) pour un fond rouge

8*20=160+couleur(0 à 7) pour un fond vert

8*22=176+couleur(0 à 7) pour un fond jaune

8*24=192+couleur(0 à 7) pour un fond bleu

8*26=208+couleur(0 à 7) pour un fond violet

8*28=224+couleur(0 à 7) pour un fond cyan
8*30=240+couleur(0 à 7) pour un fond blanc
Dernière modification par rendomizer le 23 août 2022 17:35, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

@PapyG Quelles valeurs mets-tu dans les registres pour obtenir les jeux de caractères qui ne sont pas prévus être quadrichromes?

@Rendomizer Pourquoi ne mets-tu pas les instructions après le CLOAD dans le programme qui les lancerait automatiquement. Personnellement, je n'ai pas envie de taper ces Instructions supplémentaires pour faire tourner ton programme.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

@Rendomizer: le code source est illisible puisqu'il n'y a pas les adresses des étiquettes. Place des directives ORG.

Pour ton programme encore un effort!!
Tu peux t'arranger pour que l'utilisateur n'ait même pas à entrer le call 20480. Ton programme doit s'exécuter automatiquement.

quelque chose comme:

10 call 20480


puis tu assembles le binaire de
ORG 5000H
debut_du programme:
push ix
push hl
.
.
.
listing du programme assembleur
.
.
.
fin_du_programme:
pop hl
pop ix
ret
END:


Sous dcvg 5K, tu charges la partie assembleur à l'adresse &5000H
et tu sauves ton programme avec
Csavem"myprog",&"49FB",taille du programme, 10

Pour calculer la taille de ton programme:
Adresse de END-&49FB+1

Et là, ton utilisateur est tranquille. Il n'a rien à faire. Ton programme se lancera automatiquement.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer »

merci Joaopa :oops:
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

Une petite optimisation tant que j'y suis:
fais commencer ton programme binaire à &4A20H
Comme ça le temps de chargement sera moins long.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G »

joaopa a écrit : 04 avr. 2020 21:04@PapyG Quelles valeurs mets-tu dans les registres pour obtenir les jeux de caractères qui ne sont pas prévus être quadrichromes?
Rien de particulier dans les registres, à la rigueur dans DOR, le bit 7 doit être à 0, que les Quadrichromes soient adressés en mémoire basse, mais il y a des chances que ça n'ait pas d'importance comme on ne dispose que de 8ko.
Il faut juste que l'affichage soit en 40 colonnes, et en 24 bits ou 8/24 variable (compressé), avec la commande KRF (ou KRV), dans l'octet d'attributs B, il faut que les bits 7 et 6 soient à 1, et les bits 5 à 3 sélectionnent le bloc où vont être prises les données composant la "tuile", donc le jeu Quadrichrome, à l'adresse correspondant au code ASCII indiquée dans l'octet C, le bit 2 indique si l'on prend la partie paire ou impaire du caractère (en cas de double hauteur), indiquée, elle, par l'état du bit 1.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer »

Aillé c'est fait. Bonne demos !
Dernière modification par rendomizer le 23 août 2022 17:36, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa »

@PapyG: On va tester ça pendant le confinement 8)
@Rendomizer: Super: testé et approuvé.
Répondre