[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

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 15 déc. 2019 08:35

chargez par CLOAD les programmes du fichier. Le programme basic demo v6 est le listing du programme en basic pour manipuler les sprites.

Pour faire fonctionner le générateur de sprites, il faut l'appeler avec l'instruction call &"5EC0" une seule foi.Ensuite il faut insérer dans votre programme l'instruction call &"5F2E" pour retourner au générateur de sprites.


Pour revenir au basic tapez: call&"71B3"

On poke les graphismes de fond à partir de l'adresse 29190---->29190+2590 (mémoire écran) ADRESSE PAIRE et les adresses impaires sont pour la couleur de fond. Le codage des couleurs est expliqué ci-dessous.il y a 70 caractères redéfinissable pour le décor de l'arrière-plan... les couleurs sont codées comme suit :
blanc cyan violet bleu jaune vert rouge noir
8------ 4------2------1-------8-----4-----2-----1
1 ---------------------1--------------1-----1------ = 96 $ et le code couleur
blanc pour le fond et le reste pour le dessin.
Les sprites sont organisés de la manière suivante: Ils sont de 8 caractères et sont construits à partir de l'adresse $7C2E. Chaque caractère fait 10 octets. Il y a 32 caractères pour les sprites et 62 caractères pour le décor. Le décor commence en $7C2E+80*4

Ne pas oublier de révéler le graphisme de fond avec call &"7113".

Pour afficher un sprite on doit les activer par :

poke &"70FB", 1 pour le 1er sprite.

poke &"70FC", 1 pour le 2e

poke &"70FD", 1 pour le 3e

poke &"70FE", 1 pour le 4e.

Les couleurs et positions des sprites sont aux adresses suivantes:

poke &"7100" couleur sprite 1

poke &"7101" x sprite 1

poke &"7102" y sprite 1

poke &"7103" couleur sprite 2

poke &"7104" x sprite 2

poke &"7105" y sprite 2

poke &"7106" couleur srite 3

poke &"7107" x sprite 3

poke &"7108" y sprite 3

poke &"7109" couleur sprite 4

poke &"710A" x sprite 4

poke &"710B" y sprite 4

ZONE TEXTE ------------------call &"5EE3" pour appeler la fonction texte (après chaque caractères)

POKE&"710F" COULEUR DE TEXTE POKE&"7110" CODE CARACTERE ex: $41="A"CODE CARACTERE ex: $42="B"

POKE&"7111" POSITION X

POKE&"7112" POSITION Y

la couleur est comme suit:

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

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

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

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

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

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

8*28+couleur(0 à 7) pour un fond cyan

8*30+couleur(0 à 7) pour un fond blanc
generateur de 4 lutins + demo.zip
(4.93 Kio) Téléchargé 27 fois
le mot de passe c'est quoi ? quoi.

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 01 avr. 2020 05:40

Modifié en dernier par rendomizer le 01 avr. 2020 10:18, modifié 1 fois.
le mot de passe c'est quoi ? quoi.

Avatar du membre
Mokona
Messages : 510
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Mokona » 01 avr. 2020 08:51

Sympa !

Avatar du membre
Carl
Modérateur
Messages : 11072
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Carl » 01 avr. 2020 20:46

Merci pour le kit !
Carl

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 01 avr. 2020 23:08

Sur le vrai VG5000µ il y a des trucs qui déconne au niveau de l'affichage (des caractères foirés a la fin pour le ninja et un fond qui n'est pas noir mais avec un caractère graphique) donc j'ai apporté une petite modif pour le rendre compatible. il faut cependant tronquer un caractère du 1er sprite pour faire le fond noir et un petit code basique qui est le suivant: Lancer avec cload le fichier generator puis loader tous les sprites un par un puis, tapez : for i=26670 Tos 26670+10: poke i, 0: next i et tapez call 20480

IMG_20200401_205230.jpg
IMG_20200401_205230.jpg (1.25 Mio) Vu 242 fois
kit sprites generateur+ editeur de sprites pour vg5000µ.zip
rendu compatible avec le vrai VG5000µ
(400.46 Kio) Téléchargé 35 fois
Modifié en dernier par rendomizer le 01 avr. 2020 23:40, modifié 1 fois.
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 2220
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G » 01 avr. 2020 23:37

Pourquoi tronquer un caractère du premier sprite pour faire le fond noir?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 01 avr. 2020 23:46

Je n'ai pas eu le choix ! Ce sont les limites du VG5000. Le moteur de rendu des sprites utilise les 96 caracteres et le graphisme de fond se fait en tronquent des sprites pour faire le fond Papy G
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 2220
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G » 01 avr. 2020 23:54

96? Tu n'utilises donc pas le mode quadrichrome?
C'est pour conserver la compatibilité avec le Basic, j'imagine. :wink:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 02 avr. 2020 07:34

et si Papy G j'utilise le mode quadrichrome sinon je ne pourrais pas juxtaposer mes couleurs les une a coté des autres ! pourquoi tu as des solutions pour resoudre ce probleme ?
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 2220
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G » 02 avr. 2020 16:36

Tu n'as pas à tronquer les sprites pour faire du fond, bien sûr, ça te limite à 3 autres couleurs pour les "tuiles" périphériques où tu as une pseudo-transparence, mais tu ne dépasses cette limite ni sur le fantôme, ni sur la tortue.

Par ailleurs, tu peux utiliser autant de fois 100 caractères Quad que tu veux tant que tu as de la Vram disponible, il me semble que le Basic du VG5000µ n'utilise pas plus de 4kO (peut-être même moins), ce qui devrait te laisser 400 caractères disponibles.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 02 avr. 2020 17:12

Papy G ça serait super, mais j'ai travaillé sur le sujet pendant des mois et des mois mais sans succé, si tu pouvais m'en dire plus, bien que tu te sois specialisé au minitel ça serait bien...
E EF9345-2-2.png
E EF9345-2-2.png (238.22 Kio) Vu 170 fois

Allez dans options de l'émulateur et charger le code si dessous a l'adresse 20480 et en basic
tapez : call 20480

Code : Tout sélectionner

ld hl,_graphic
ld a,33 ;code caractere
call $001b ; increment jusqu'a 10 automatiquement les données dans graphic
boucle:
ld hl,_ef9345
call $00ad ; appel la routine pour adresser l'ef9345
jp boucle

_graphic:
db 255,1,12,29,129,55,88,189,129,255 ; pixels aleatoires

_ef9345:
db  28 ; nombre de données a injester dans l'ED9345 ici il y en a 28 si dessous
db $21
db $01
db $28
db $81

db $21
db $04
db $28
db $82

db $21
db $67
db $28
db $83

db $21
db $13
db $28
db $84

db $21
db  33
db $22
db $d8
db $23
db 135
db $26
db  19
db $27
db  19

db $28
db 0
 

le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 2220
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G » 02 avr. 2020 23:34

Je me suis beaucoup documenté, mais n'ai pour l'instant rien pratiqué. :roll: :oops:
Ceci dit, le modèle de Minitel qui m'intéresse possède un 9345 avec 8kO de Vram, mais je n'y connais quasiment rien en VG5000µ, et que dalle en Z80.
Ce qu'il faut, c'est définir ce qui est disponible, et écrire dans ces zones-là, mais les routines en Rom du VG5000µ le permettent-elles?
Si c'est possible, essaies de faire tourner ton programme en stockant et reprenant ailleurs tes caractères.
Si tu empiètes sur la mémoire de page, tu t'en rendras compte assez vite.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

joaopa
Messages : 496
Enregistré le : 14 sept. 2013 12:17

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par joaopa » 03 avr. 2020 00:34

>Par ailleurs, tu peux utiliser autant de fois 100 caractères

Qu'est-ce que tu veux dire? Il serait possible d'afficher plus de 400 quadrichromes différents différents en même temps avec l'EF9345? :shock:

Avatar du membre
rendomizer
Messages : 289
Enregistré le : 17 juin 2016 21:00
Contact :

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par rendomizer » 03 avr. 2020 10:43

c'est impossible avec le VG5000, à moins que l'on me prouve le contraire... :D
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 2220
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000µ] sprites multicolores pour le BASIC

Message par Papy.G » 03 avr. 2020 12:05

Le 9345 est prévu pour pouvoir disposer jusqu'à huit jeux de quadrichromes, ce qui permet d'afficher jusqu'à huit fois 100 caractères (ou "tuiles"), voire huit fois 200 en double hauteur (pseudo-pixels carrés).
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 se peut que laisser la main au Basic foute tout en l'air, mais en restant dans de l'assembleur, ça devrait être possible.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Répondre