:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Librairies et Utilitaires

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 03/12/2005, 22h52   #1
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut Librairie PAlib, PAGfx, et Wiki

PAlib
Librairie DS
BETA

Version 0.73b

Présentation :

Alors, la version PAlib 0.73b est sortie hier (me semble). En gros, l'intérêt par rapport aux anciennes versions (postées sur l'ancien PA) sont le support par défaut des palettes étendues pour les sprites et les fonds... Du coup, chaque fond possède se propre palette, ce qui est bien pratique. Kleevah a d'ailleurs eu la gentillesse de concocter une petit frontend ! (le tout en .Net)

Deuxièmement, j'ai lancé en parallèle PAGfx, qui est un convertisseur de Gfx pour DS (marche aussi pour gba), que j'utilise en remplacement de gfx2gba... Il fonctionne avec un fichier ini, peut gérer plusieurs palettes pour les sprites et les fonds, et en conjonction avec PAlib, on peut charger un fond (avec sa palette) en donnant juste l'écran, le numéro de fond, et le nom !! rien de plus simple !

Troisièmement, j'ai démarré un Wiki sur le développement DS en général et utilisant PAlib en particulier. Il est orienté grands débutants, abordant même pas mal de petites notions du C ! Pour l'instant, il est encore basique, mais grandit assez vite. J'espère le faire de façon assez aboutie, afin qu'il puisse servir aux débutants comme aux personnes plus expérimentées... il y aura même une section 'math', avec l'utilisation des sinus et cosinus, des nombres a virgule fixe et gestion de trajectoire, etc... Par contre, désolé, mais tout est en anglais, j'ai ni le temps ni le courage de toute traduire

Autres informations :

Le forum de PAlib : http://www.palib.com
Le wiki : http://www.palib.info/wiki

Dernière modification par Yodajr ; 02/07/2006 à 04h29.
Mollusk est déconnecté   Réponse avec citation

Publicité

Vieux 04/12/2005, 00h01   #2
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

Salut Mollusk, bravo pour ton convertisseur d'image (et la Lib aussi bien sur). J'ai même compris comment fonctionne le "codage" de l'image. (contrairement
à gfx2gba). Mais y a-t-il un moyen de savoir quelle est la couleur représentée par le numéro ? Exemple :

Code:
//Palette created using Mollusk's PAGfxConverter

const unsigned short bgtest_Pal[3] __attribute__ ((aligned (4))) = {
64543, 32768, 32799};
Je crois que 64543 est noir et que 32768 est rouge mais ce n'est qu'une supposition...

Merci !
mastertop101 est déconnecté   Réponse avec citation
Vieux 04/12/2005, 00h28   #3
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

bah le codage c'est du codage 16 bit classique, donc de tête je pourrais pas trop te dire, mais bon... je crois qu'avec visualham il y avait un truc pour convertir les différentes valeurs de couleurs en valeurs R, G, B

Dernière modification par Mollusk ; 05/12/2005 à 14h56.
Mollusk est déconnecté   Réponse avec citation
Vieux 04/12/2005, 03h48   #4
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

Citation:
Envoyé par Mollusk
bah le codage c'est du codage 16 bit classique, donc de tête je pourrais pas trop te dire, mais bon... je crois qu'avec il y avait un truc pour convertir les différentes valeurs de couleurs en valeurs R, G, B
"avec" quoi ?

[edit] jai essayé d'afficher le bg avec la derniere version de pa lib.. résultat:

ça fonctionne pas !

dailleurs, dans l'exemple que tu as fait, je crois que le nom utilisé ne devrait pas se nommer "bg0" mais plutot "bg0_Map" non ?

Dernière modification par mastertop101 ; 05/12/2005 à 00h44.
mastertop101 est déconnecté   Réponse avec citation
Vieux 05/12/2005, 03h01   #5
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

je viens d'essayer en installant la lib avec l'installer et c'est encore plus bizarre...

et la fameuse 12ème ligne :
Code:
PA_LoadTiledBg(0, 3, test4);
mastertop101 est déconnecté   Réponse avec citation
Vieux 05/12/2005, 14h58   #6
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

alors...

Pour les couleurs, je voulais dire en utilisant un des outils de VisualHam, j'ai raté le nom, sorry

Sinon, mastertop, avec quoi as-tu converti ton fond ? PAGfx ? Il faut le convertir avec PAGfx, sans préciser de nom de palette (ou en mettant comme nom de palette le nom du fond). Et non, il ne faut pas mettre _Map (cf l'exemple dans PAlib...), puisque tu donnes juste le nom, et la fonction se chargera de mettre nom_Tiles, nom_Map, et nom_Pal à ta place

Les exemples pour les fond compilent bien chez toi ou pas du tout ?
Mollusk est déconnecté   Réponse avec citation
Vieux 05/12/2005, 15h46   #7
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

ah en fait, moi ça me crée un image_bitmap et pas image_map (d'où le 2ème problème j'imagine..) pourtant je choisis bien un background de 256 couleurs.. et apparament en faisant une image_map, la syntaxe du code change completement et c'est pas bien pour ce que je veux faire.. (surtout que j'ai passé un bon moment pour comprendre comment transformer une valeur X,Y en valeur image_bitmap(valeur)..)

PS: oui je l'ai converti avec pagfx et je peux pas tester l'exemple présentement (pas sur mon ordi..) mais ça devrait marcher..

Dernière modification par mastertop101 ; 05/12/2005 à 15h50.
mastertop101 est déconnecté   Réponse avec citation
Vieux 05/12/2005, 16h17   #8
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

bah si ca te créé une image bitmap, c'est que tu as pas donné comme mode TiledBg....
Mollusk est déconnecté   Réponse avec citation
Vieux 05/12/2005, 20h45   #9
birslip
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 353
Par défaut

Génial Mollusk, il gère tout ton GfxConverter enfin il est bien pratique, surtout le all_gfx.c/h ça evite de tous mettre à la main
__________________
Mon super blog!
birslip est déconnecté   Réponse avec citation
Vieux 05/12/2005, 22h36   #10
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

Citation:
Envoyé par Mollusk
bah si ca te créé une image bitmap, c'est que tu as pas donné comme mode TiledBg....
l'exemple compile bien..

par contre regarde une partir de le .ini :
Citation:
#Backgrounds :
C:\Documents and Settings\Jerome\Desktop\converter\test4.bmp TiledBg test4
et celle de test4.c :
Code:
const unsigned char test4_Bitmap[49152] __attribute__ ((aligned (4))) = {
C'est possible d'utiliser un image_bitmap comme background ???(mais que ca reste possible de mettre un sprite dessus...)

Dernière modification par mastertop101 ; 05/12/2005 à 22h59.
mastertop101 est déconnecté   Réponse avec citation
Vieux 05/12/2005, 22h40   #11
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

oulah, bizarre bizarre... tout pourrait m'envoyer tout ca par mail ? (molousk chez gmail.com)
et sinon, c'est la 0.6 que tu utilises ? (la derniere de PA)
Mollusk est déconnecté   Réponse avec citation
Vieux 05/12/2005, 23h29   #12
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

bah en fait... ça n'avancerait pas mon problème puisque je comprends pas comment sont codés les image_map. C'est possible une petit fonction "PA_LoadBitmapBg" ??
mastertop101 est déconnecté   Réponse avec citation
Vieux 05/12/2005, 23h32   #13
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

y'en a déjà une...

autre solution : Init8bitBg, et apres tu load un bitmap 8 bit... (en n'oubliant pas de charger la palette).

Je comprends pas ton histoire de pas comprendre comment est codée la map ??

En gros, ca regarde ton image et ca la découpe en morceaux de 8x8 pixels. Si t'as des morceaux identiques, ca les vire, en gros ca optimise pour prendre un minimum de place. C'est c'est bg_Tiles.
La palette, c'est la palette..

Et la map, ca stock dans un tableau de 32x32 (pour 256x256 pixels) quels sont les blocs de 8x8 et à quel endroit... donc les 32 premières valeurs de la map sont pour les 32 premiers blocs, soit les premiers 256x8 pixels. Ca stock non seulement le numéro de tile (de 0 à 1024), mais aussi si cette image est flippée ou non (histoire d'optimiser à 200%, ca vérifie si les tiles sont identiques à d'autres si on les retournes verticalement et/ou horizontalement)
Mollusk est déconnecté   Réponse avec citation
Vieux 06/12/2005, 09h31   #14
Gwoin
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Lille
Messages: 212
Par défaut

Citation:
Envoyé par Mollusk
En gros, ca regarde ton image et ca la découpe en morceaux de 8x8 pixels. Si t'as des morceaux identiques, ca les vire, en gros ca optimise pour prendre un minimum de place.
C'est vraiment une bonne idée ça
Bon, par contre mon pack de petits jeux compile toujours avec la nouvelle version de PALib, mais ne tourne plus ... il faut que je regarde ça de plus près...
En tout cas, merci Mollusk pour cette nouvelle version de PALib
Gwoin est déconnecté   Réponse avec citation
Vieux 06/12/2005, 10h08   #15
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

Ca vient probablement du changement dans la gestion des palettes (bien que en théorie j'ai fait en sorte que ca soit rétro compatible pourtant)
Mollusk est déconnecté   Réponse avec citation
Vieux 06/12/2005, 22h32   #16
Gwoin
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Lille
Messages: 212
Par défaut

j'ai reconverti mes images en utilisant PAgfx et j'ai réécris mes portions de code qui s'occupent de les charger (les bg et les sprites).

Le probleme c'est que je n'arrive plus à cliquer sur un sprite (il semble ne rien detecter).

Mais bon, ca doit etre un oubli de ma part quelque part (quoi que je ne vois vraiment pas où...)
Gwoin est déconnecté   Réponse avec citation
Vieux 07/12/2005, 00h25   #17
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

tu ne peux plus cliquer sur un sprite... je ne vois vraiment pas pourquoi, puisque le convertisseur ne change strictement rien aux propriétés du sprite...
T'aurais un bout de code ?
Mollusk est déconnecté   Réponse avec citation
Vieux 07/12/2005, 01h03   #18
Feenet
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: 94
Messages: 271
Par défaut

Super le wiki mollusk!!!

Par contre si tu pouvais faire une version française pour les anglophobes se serait parfait
Feenet est déconnecté   Réponse avec citation
Vieux 07/12/2005, 11h18   #19
Gwoin
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Lille
Messages: 212
Par défaut

Citation:
Envoyé par Mollusk
tu ne peux plus cliquer sur un sprite... je ne vois vraiment pas pourquoi, puisque le convertisseur ne change strictement rien aux propriétés du sprite...
T'aurais un bout de code ?
OK, mais c'est codé en C++. Il y a donc plusieurs fichiers qui sont en cause, mais je te met juste un exemple du main (de toute facon je ne peux pas aller plus loin dans le jeu ):
Code:
//definit les numéros des prites de la page d'accueil du jeu
enum
{
    SPR_JEU_DS4 = 0,
    SPR_JEU_MINE,
    [...]
    SPR_JEU_CUSTOM
};


//initialise l'affichage de la page d'accueil
void ShowStart()
{
    // Load bg Palettes
    PA_LoadBgPal(ECRAN_TOP, 0, BG_TOP_Pal);
    PA_LoadBgPal(ECRAN_DOWN, 0, BG_DOWN_Pal);

    // Load the sprite palette, for both screens
    PA_LoadSpritePal(ECRAN_DOWN,SPR_JEU_DS4,(void*)vignette_DS4_Pal);
    PA_LoadSpritePal(ECRAN_DOWN,SPR_JEU_MINE,(void*)vignette_2_Pal);
    [...]


    PA_LoadTiledBg(ECRAN_TOP, 0, BG_TOP_Bitmap);	
    PA_LoadTiledBg(ECRAN_DOWN, 0, BG_DOWN_Bitmap);	
    //PA_LoadSimpleBg(ECRAN_TOP, 3, BG_TOP_Tiles, BG_TOP_Map, BG_256X256, 0, 1);    //obsolete
    //PA_LoadSimpleBg(ECRAN_DOWN, 3, BG_DOWN_Tiles, BG_DOWN_Map, BG_256X256, 0, 1);    //obsolete

    PA_CreateSprite(ECRAN_DOWN, SPR_JEU_DS4, (void*)vignette_DS4_Sprite, OBJ_SIZE_64X32, 1,0, 54, 8);
    PA_CreateSprite(ECRAN_DOWN, SPR_JEU_MINE, (void*)vignette_2_Sprite, OBJ_SIZE_64X32, 1,0, 104, 8);
    [...]
}


// test l'appui sur un sprite et reagit en conséquence (i.e: lance le jeu concerné)
void TestTouche()
{
    if (PA_SpriteTouched(SPR_JEU_DS4))
    {
        [...]
        PA_ResetSpriteSys();
        m_iEtatDuJeu = EDJ_JEU;
        m_cJeuCourant = new CJeuDS4();
    }
    else if (PA_SpriteTouched(SPR_JEU_MINE))
    {
        [...]
        PA_ResetSpriteSys();
        m_iEtatDuJeu = EDJ_JEU;
        m_cJeuCourant = new CJeuMine();
    }
    [...]
}
Voilà.
Ce matin dans la voiture je me suis dit que peut-etre il fallait changer un truc dans le makefile (pas encore eu le temps de vérifié, je le ferai ce midi).

Merci
Gwoin est déconnecté   Réponse avec citation
Vieux 08/12/2005, 11h46   #20
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

ah, c'est du c++, ca change beaucoup de choses !!

Tu as recomilé PAlib pour le C++ ? En fait j'ai mis un CPPInstall.bat, qui compile pour le C++, sinon, effectivement, le stylet et les touches ne marchaient plus du tout... (et plus tu foutais de trucs dans le projet, plus ca merdait).

Je sais plus si j'ai précisé sur le wiki, d'ailleurs, faudra que je regarde...


Sinon, pour la traduction en francais... ca risque d'etre difficile, d'une part parce que c'est TRES long (je n'aurai jamais le temps de faire un truc un tant soit peu complet si je fais ca en plus en francais, en faisant en anglais je me suis dit que ca profiterai à plus de monde...), et que comme c'est un wiki, ca peut changer un peu partout un peu n'importe quand, donc pour suivre la traduction... pas simple...

Si quelqu'un se sent le courage de traduire, ne serait qu'en partie, je peux mettre un deuxième wiki en francais, mais je ne peux vraiment pas le faire moi-meme, désolé...

A tout hasard, j'ai passé la page dans google translate... c'est assez marrant ! Les mots avec des abréviations ne sont pas traduits, et puis je vous laisse constater une perle :

En anglais : Day 3 - Pad, Stylus, and Text (Simple Text, Box text, Pad, and Stylus covered)
En francais : Jour 3 - Garniture, aiguille, et texte (texte simple des textes, de boîte, garniture, et aiguille couverte)

ou encore Day 6 - Dev-related Math Stuff -> Jour 6 - Substance Réalisateur-connexe De Maths
Mollusk est déconnecté   Réponse avec citation
Vieux 08/12/2005, 16h56   #21
Gwoin
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Lille
Messages: 212
Par défaut

Non, je n'ai pas fait attention au fait qu'il faille recompiler pour le C++

Je vais faire un test ou 2

Merci
Gwoin est déconnecté   Réponse avec citation
Vieux 08/12/2005, 17h04   #22
Tembargo
Membre confirmé
 
Date d'inscription: 21/11/2005
Localisation: Tōkyō
Messages: 3 018
Voir les codes amis Nintendo DS
Par défaut

Citation:
Envoyé par Mollusk
je vous laisse constater une perle :

En anglais : Day 3 - Pad, Stylus, and Text (Simple Text, Box text, Pad, and Stylus covered)
En francais : Jour 3 - Garniture, aiguille, et texte (texte simple des textes, de boîte, garniture, et aiguille couverte)

ou encore Day 6 - Dev-related Math Stuff -> Jour 6 - Substance Réalisateur-connexe De Maths
Ceux qui ne comprennent pas l'anglais vont enfin savoir ce qu'on ressent quand on lit la PAlib.. Ton anglais laisse vraiment à désirer.. arf..
Pour info, la première version de mon SudokuDS sera avec aiguille mais sans garniture !
Tembargo est déconnecté   Réponse avec citation
Vieux 08/12/2005, 17h07   #23
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

Lol, merci Tembargo...

Pour la garniture, quand tu l'ajouteras, tu pourrais éviter les champignons, j'aime pas trop... merci...
Mollusk est déconnecté   Réponse avec citation
Vieux 08/12/2005, 18h11   #24
Gwoin
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: Lille
Messages: 212
Par défaut

Haaa, Mollusk, c'est génial, ca marche super bien.

Jusque là je ne comprenais pas pourquoi l'IA de mon DS4 (un puissance4) faisait planter le jeu. Je pensais que ca venait de l'émulateur qui ne supportait pas bien tout. Idem pour un autre jeu de mon pack qui plantait sauvagement (des sprites apparaissaient ou disparaissaient sans que je ne comprenne pourquoi).

C'était simplement parce que c'est codé en C++ et qu'il fallait recompiler ta lib.

Un grand merci Mollusk ( ), je commençais sèrieusement à me démotiver à cause de tous ces bugs incompréhensibles et irrésolvable.

Maintenant il n'y a plus aucun problème!
Je vais enfin pouvoir finaliser les jeux en cours et commencer les autres de mon pack. C'est génial!
(Mollusk vient de faire un nouvel homme content )
Gwoin est déconnecté   Réponse avec citation
Vieux 09/12/2005, 12h27   #25
Mollusk
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 1 037
Par défaut

Au fait, mastertop, j'ai compris pourquoi ca te faisait des bitmaps... En fait, il faut mettre TileBg et non TiledBg, faudra que je rajoute les 2 possibles
Mollusk est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h30.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince