1

Je vous propose de voir comment afficher sur Falcon 030 une image 320x200 (RVB) ou 320x240 (VGA) en 256 couleurs et tout ça en GFA Basic.
Pour celà nous allons utiliser des images au format PI9. Ce format se rapporche du PI1 de DEGAS ELITE. Les image ne sont pas compactées et contiennent à la suite la palette (256 couleurs) puis l'image !
De nombreux logiciels sur Falcon gérent ce format notament DELMPAINT, et il existe des drivers pour GEMVIEW qui chargent ou sauvent ce format.
Structure d'un fichier PI9:

Un fichier au format PI9 à une taille de 77824 octets: 1024 octets pour la palette (256 couleurs, 4 octets par couleur), puis l'image proprement dite de 76800 octets (240 lignes de 320 octets)

Exemple en GFA Basic:

RESERVE 50000 ! réserve de la mémoire
super%=GEMDOS(32,L:0) ! mode superviseur
resol&=XBIOS(88,W:-1) ! Sauve la résolution
sauve_ecr%=XBIOS(2) ! Sauve adresse écran
buffer%=MALLOC(77824) ! buffer pour le fichier PI9
image%=ADD(buffer%,1024) ! adresse de l'image
moniteur%=XBIOS(89) ! test du moniteur
IF moniteur%=2 ! 2 = VGA
~XBIOS(5,L:image%,L:image%,3:&X100110011) ! mode VGA 320x200 256c
ELSE
~XBIOS(5,L:image%,L:image%,3:&X11) ! mode RVB 320x200 256c
ENDIF
BLOAD "IMAGE.PI9",buffer% ! charge l'image dans le buffer (IMAGE.PI9: nom du fichier)
BMODE buffer%,&HFFFF9800,1024 ! installe la palette
~INP(2) ! attente appui sur une touche
~GEMDOS (32,L:supercheeky ! mode utilisateur
~XBIOS(5,L:sauve_ecr%,L:sauve_ecr%,3:resol&) ! Restore résolution
~MFREE(buffercheeky ! restore mémoire

Je pense qu'il n'y a pas d'erreur , si ça vous interesse je vous proposerais la prochaine fois un fondu pour faire apparaitre (noir -> couleur) ou disparaitre (couleur -> noir) une image (toujours PI9)


2

Merci...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

3

idem...

Templeton octopus

4

ya pas un xbios pour changer la palette a la vbl suivante comme sur ST ?
enfin je dis ca mais moi je fais comme toi, un bon vieux bmove en superviseur wink
Mefiez vous du Dr H qui sommeil en moi !
Muhahahahahahahahaha !
Muuuuhahaha...kof...kof...hahaha !

5

BMODE buffer%,&HFFFF9800,1024 ! installe la palette



L'ins bmode existe ? ce n'est pas un bmove ? Sinon elle fait quoi ?

Cela fait un moment que je n'ai plus de doc de Gfa !


Kochise octopus
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

6

Voix divine grâve et résonnate : "Qui c'est qui ose écrire sous mon nom, hohoho, je vais te foudroyer petit insolent" !

Plus sérieusement : "yé mé fout qué cé swé BMODE ou BMOVE pétit, yé té signale jouste qué jé chausse dou 45 avec coque d'acier, si tou vau, yé l'essaye en mode 'BMOVE coqué%,GT derrière,45' !"

GT Souffert (beaucoup beaucoup)
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

7

Merci pour la traduc Xerus !! grin

Treve de plaisanterie, c'était juste pour confirmation, merci mon Kochise !! cool



Templeton (Qui souffre bcp moins !) rabbit
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

8

GT Turbo
:
BMODE buffer%,&HFFFF9800,1024 ! installe la palette



L'ins bmode existe ? ce n'est pas un bmove ? Sinon elle fait quoi ?

Cela fait un moment que je n'ai plus de doc de Gfa !


Kochise octopus


Oups c'est une erreur de frappe, c'est BMOVE bien sûr !!!

9

Le source du Wormhole m'avait bien servi à l'epoque pour comprendre l'affichage des PI9 justement...

Me souviens encore de la première image 256 couleurs que j'ai réussi à afficher grace à ça smile
---------------------------------
Cooper / Paradize
STf/Mega ST/STe/F030/Lynx
---------------------------------
Compilations de groupes ataristes français : https://www.youtube.com/channel/UCEBFi9nRczTRjRSvmy-QF8g

10

Arf' oui c'est ce que j'ai utilisé à l'époque dans Wormhole, dans Plasma, dans Voxel ... ça nous rajeûnit pô tout çà smile

Artemus (ami des dinosaures)


11

PI9 et mode 256 couleurs sur Falcon 030 (suite)

Sur Falcon 030 la palette se trouve à l'adresse &HFFFF9800 et à une taille de 1024 octets (soit 4 octets par couleur), organisés de la manière suivante:

octet1 octet2 octet3 octet4
RRRRRRxx VVVVVVxx xxxxxxxx BBBBBBxx

Les x indiquent les bits non utilisés. L'octet 3 n'est pô utilisé du tout et pour les 3 autres composants Rouge (R), Vert (V) et Bleu (B) seuls les bits 2 à 7 sont utilisés.
Chaque niveau de Vert, Rouge et Bleu peux donc prendre 64 valeurs, variant de 0 (&X00000000) à 252 (&X11111100) en variant de 4 à chaque fois.
Pour faire un fondu noir-> couleur nous allons mettre toutes les composantes de toutes les couleurs de la palette à 0, charger l'image PI9, et augmenter progressivement toutes les composantes de chaque couleur pour qu'ils correspondent à la palette de l'image !

A noter que le tutorial de GT TURBO (creer un jeu en GFA) marche aussi pour Falcon en mode 256c: en remplaçant les image PI1/PC1 par des PI9... mais attention la taille des PI9 etant de 77824 octets, pô possible de les mettre dans les INLINE, à moins de les compresser (sera peut-être vu plus tard si vous voulez...)
Il suffit de reserver avec MALLOC une zone mémoire de la bonne taille et de charger l'image PI9 dedans (BLOAD), voir listing précédent ...

A suivre ?

12

Merci a Artemus pour le conseil, je rajouterais peut etre un chapitre spécial Falcon, et j'y poserais la routine.


GT Turbo octopus
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

13

Artemus :

Sur Falcon 030 la palette se trouve à l'adresse &HFFFF9800 et à une taille de 1024 octets (soit 4 octets par couleur), organisés de la manière suivante:


Rah mais quelle bande de sauvages, de taper violemment dans les registres hardware, alors que la fonction Xbios VsetRgb() (numéro 93) est faite pour ça.
Web: http://pmandin.atari.org/
Programmeur Linux, Atari
Spécialité: Développement, jeux

14

GT Un gros barbare ! (C'est le style démomaker qui prend le dessus ! eek )
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

15

pmandin
:
Artemus :

Sur Falcon 030 la palette se trouve à l'adresse &HFFFF9800 et à une taille de 1024 octets (soit 4 octets par couleur), organisés de la manière suivante:


Rah mais quelle bande de sauvages, de taper violemment dans les registres hardware, alors que la fonction Xbios VsetRgb() (numéro 93) est faite pour ça.


D'un coté d'accord avec toi pour la compatibilité, mais certaines choses sont des reflexes de démomaker, et de l'autre je vais t'avouer que je préfères faire :
movem.l Pal,d0-d7 movem.l d0-d7,$ffff8240.w


qu'un appel Xbios pour ma palette. Plus long et plus lent, inutilisable qu'en tu veux changer plusieurs fois la palette dans une Vbl.

Après c'est a tout le monde de choisir, perso je pense qu'on peut faire de la programmation propre en accèdant direct aux registres.

GT Turbo octopus
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)