1

Bonjour,

Je débute en programmation GP32, et je me demandais comment changer 2 couleurs précise de la palette (je suis en mode 8bpp).

J'ai bien trouvé la fonction :
int GpPaletteEntryChange(int pal_offset, int entry_num, GP_PALETTEENTRY * pal_entry, int flag);

mais je ne sais pas a quoi correspond pal_offset ??? je veux changer les couleurs 4 et 7

GpPaletteEntryChange(0,4,&tmp_entry[0],GPC_PAL_SYNC_REALIZE);
GpPaletteEntryChange(0,7,&tmp_entry[0],GPC_PAL_SYNC_REALIZE);

avec ce code , il me change bien la couleur 7 , mais pas la 4 :\ quelqu'un a des infos sur cette fonction ???

J'ai contourné le problème en faisant
h_pal = GpPaletteCreate(16, tmp_entry);
GpPaletteSelect(h_pal);
GpPaletteRealize();
GpPaletteDelete(h_pal);

mais bon, cela me satisfait pas (mon code est dispo sur http://www.pascalorama.com/bin/gp32/GPPalRot.zip )

merci d'avance



2

Dans definetIt, nous définissons:

#define AddPAL(aPAL,a) pals[a] = GpPaletteCreate(256, (GP_PALETTEENTRY*)aPAL);

puis

#define UsePAL(a) \
GpPaletteSelect(pals[a]);\
GpPaletteRealize();

Que nous utilisons :

AddPAL(sp1_Pal,1)

puis UsePAL(1)

En espérant que cela t'aidera.
avatar
:*)

3

Moi je poke direct la palette en memoire.
Simple rapide efficace

4

JyCet tu pourrais pas nous sortir une sorte de mini compil des commades pour adresser la GPette direct en assembleur ?

On pourrais peut être faire cela à 3, car avec Pékélé, on cherche à sortir un bib qui fait les principales actions sur la GPette en mix assembleur et C.

Qu'en dis tu ?
avatar
:*)

5

J'y connais absolument que dalle en ASM, mais voici de quoi poker:
long *pal = (long *)0x14a00400; // adresse memoire ou est toujours la palette
utilisation:
// couleur RRRRRVVVVVBBBBBA
pal[249] = 0xF800; // couleur index 249 poke en couleur rouge

@+

6

C'est vrai que ça serait bien d'avoir une compilation de toutes les adresses mémoires fixes pointant sur quelque chose d'intéressant grin
Hecubus

7

JyCet a écrit :
J'y connais absolument que dalle en ASM, mais voici de quoi poker:
long *pal = (long *)0x14a00400; // adresse memoire ou est toujours la palette
utilisation:
// couleur RRRRRVVVVVBBBBBA
pal[249] = 0xF800; // couleur index 249 poke en couleur rouge
@+


Excellent merci a tous , c vachement plus simple de passé par l'adresse direct (je hais les api wink )
merci