:: PlayerAdvance.org ::  

Pr嶰嶮ent   :: PlayerAdvance.org :: > :: Forums H嶵erg廥 :: > 無ibrary

無ibrary Official 無ibrary forum (English / Fran蓷is)

Publicit

R廧onse
 
Outils de la discussion Modes d'affichage
Vieux 20/03/2007, 00h47   #1
Brunni
Super Mod廨ateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par d嶨aut - [Projet DS - App] 無ibrary

無ibrary
Librairie pour la DS
BETA

Version 1.12

Pr廥entation :

Hello
Apr鋊 un long temps d'inactivit, me revoici avec... une librairie pour la DS cette fois!
Alors autant pr憝enir tout de suite, cette librairie utilise le GPU 3D de la DS, donc l'avantage c'est que vous pouvez faire de jolis pitits n'effets dans tous les sens, mais l'inconv幯ient c'est que vous n'avez qu'un seul 嶰ran la fois (ou deux, mais 30 fps).
Si on fait abstraction de 蓷, mettons que vous n'aviez de toute fa蔞n pas une grande envie d'exploiter le second 嶰ran ou qu'afficher un BG avec 3 sprites suffirait, avec une lecture du stylet. 無ibrary vous permettra de faire un jeu en 2D sans vous prendre la t皻e, et m瘱e de mixer 憝entuellement avec de la 3D.
De plus, la librairie peut s'int嶲rer avec PALib, donc vous pouvez toujours utiliser celle-ci pour votre deuxi鋗e 嶰ran et vous concentrer sur le premier avec 無ibrary

Alors passons un peu en revue les fonctionnalit廥 de cette librairie:
  • Bas嶪 sur le m瘱e mod鋩e qu'OSLib: dessin ordonn d'objets sur l'嶰ran comme sur une feuille de papier. Habituel pour ceux qui ont d嶴 cod sur une console 3D ou rendu software.
  • Format d'images support廥: PNG, GIF, JPG.
  • Effets: 彋irement, teinte (4 coins), mirroring, rotation (avec d嶨inition du centre), s幨ection d'une partie d'image afficher (spritesheet)
  • Qualit 18 bits au lieu de 15 bits avec le GPU 2D.
  • Syst鋗e de fichiers virtuels, il est possible de charger des fichiers ind廧endemment du support (RAM, libFat, GBFS support廥 par d嶨aut). Permet de r嶧liser plus facilement des softs compatibles avec tous les linkers.
  • G廩m彋rie non textur嶪 (rectangles, d嶲rad廥, lignes, etc.)
  • Syst鋗e de message boxes basique
  • Wrapper VideoGL pour le chargement de textures / palettes en VRAM: il est possible d'en charger et d嶰harger dynamiquement. De plus, il est plus flexible (vous pouvez choisir quelles banques utiliser pour quoi, etc.)
  • Gestion des touches et du touchscreen (incluant le double clic et la vitesse du stylet)
  • Int銶re 2 splash screens
  • Syst鋗e de maps avec tiles de taille variable et support des bits GBA (palette, miroir)
  • Wrapper bas niveau pour dessiner des primitives
  • Syst鋗e de texte utilisant le m瘱e format de polices que OSLib

Des exemples sont 嶲alement fournis, une documentation Doxygen et une petite documentation en .chm. Il y a aussi deux templates, un avec PALib et un sans PALib.
La doc doxygen est dispo ici: http://brunni.palib.info/new/ulib/do...gen/index.html (il faut aller sur l'onglet Modules)

Les performances sont tr鋊 bonnes: un des exemples montre qu'en n'optimisant pas du tout (en plus c'est du C++), avec 400 balles qui rebondissent sur l'嶰ran, on est moins de 15% de CPU...

Galerie d'image :


Historique :
- 19.03.2007: Version 0.00, premi鋨e version pr-alpha, utilisable et quasiment compl鋈e. Tout n'est pas encore garanti de fonctionner correctement cependant.

Comment jouer :

Autres informations :
N'h廥itez pas me faire part de vos commentaires et des questions ou difficult廥 que vous pourriez avoir

Edit: Pour ceux qui ne peuvent ou ne veulent pas tester la lib, j'ai deux petits samples qui montrent l'utilisation de la lib:
http://brunni.palib.info/new/ulib/tmp/Example01b.rar
http://brunni.palib.info/new/ulib/tmp/Example09.rar
A tester avec no$gba ou sur vraie DS

La source viendra tout bient矌, d鋊 que l'彋ape 'alpha test' sera termin嶪

Attention : une erreur, qui va 皻re rapidement corrig嶪, s'est gliss嶪 dans la licence et pourrait faire croire qu'il s'agit d'une Licence Publique G幯廨ale GNU (GNU GPL). Or, il ne s'agit pas d'une GNU GPL, mais d'une version modifi嶪 et simplifi嶪 de cette licence. Il ne faut donc pas tenir compte de cette erreur dans l'interpr彋ation de la licence accompagnant 無ibrary.

Derni鋨e modification par Brunni ; 17/03/2009 10h59.
Brunni est d嶰onnect   R廧onse avec citation

Publicit

Vieux 20/03/2007, 00h48   #2
jujurackham
Membre confirm
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 804
Par d嶨aut

Bon alors premi鋨es impr廥sions : ben 蓷 m'a l'air ni plus ni moins qu'une tr鋊 bonne lib, chapeau !

En esp廨ant pour toi qu'elle deviendra une r嶨廨ence au m瘱e titre que PAlib !
__________________
[Projet GBA] Don't Erase Me !

Derni鋨e modification par jujurackham ; 20/03/2007 00h52.
jujurackham est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 00h49   #3
DJP
Bitchy Little Girl...
 
Date d'inscription: 29/10/2005
Messages: 3 198
Par d嶨aut

Citation:
Envoy par jujurackham
Premzzzz
Il y a des bans qui se perdent.... ou pas...

En tout cas, Brunni
__________________

>> On garde :: On am幨iore :: On kill <<
DJP est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 00h52   #4
Lazarus
Membre confirm
 
Date d'inscription: 15/11/2006
Messages: 93
Par d嶨aut

Super post juju...

Plus s廨ieusement, bonne petit lib en perspective Bravo !
Lazarus est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 00h53   #5
jujurackham
Membre confirm
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 804
Par d嶨aut

Mais heu, c'彋ait juste le temps de pouvoir lire. J'ai 嶮it, et j'ai comment
__________________
[Projet GBA] Don't Erase Me !
jujurackham est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 00h57   #6
Arcadia
Mod廨ateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compi銶ne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par d嶨aut

Citation:
Envoy par jujurackham
Mais heu, c'彋ait juste le temps de pouvoir lire. J'ai 嶮it, et j'ai comment
Je proc鋄e ainsi parfois ...

Bon aller, une derni鋨e news pour la route
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 00h59   #7
jujurackham
Membre confirm
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 804
Par d嶨aut

@Arcadia : tu n'arr皻es donc jamais de newser ?
__________________
[Projet GBA] Don't Erase Me !
jujurackham est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 01h07   #8
Brunni
Super Mod廨ateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par d嶨aut

Merci des encouragements
J'ai rarement eu l'occasion de voir autant de monde sur un topic cette heure-ci, je ne m'y attendais vraiment pas
J'ai ajout deux samples la fin du post pour que vous puissiez quand m瘱e avoir un aper蓰 de la lib avant Je sais mes exemples sont pas terribles mais bon c'彋ait surtout pour apprendre utiliser la lib la base
Voici un exemple de code qui affiche une image provenant de FAT et lui fait suivre le stylet:
Code PHP:
#include <ulib/ulib.h>

int main()
{
    
UL_IMAGE *imgTails;
   
    
//Initialise 無ibrary
    
ulInit(UL_INIT_ALL);
    
//On initialise la partie graphique
    
ulInitGfx();
    
//Init de la FAT - ne pas le faire syst幦atiquement, 蓷 risque de planter sur certains linkers
    
ulInitLibFat();

    
//Affiche quelques splashs ^^
    
ulShowSplashScreen(1);
    
ulShowSplashScreen(2);

    
//On va utiliser le touchscreen
    
ulSetMainLcd(0);
    
    
//Le rose p彋ant est la couleur transparente (masque des sprites)
    
ulSetTransparentColor(RGB15(31031));

    
//On charge notre image de Tails depuis la source active (FAT en l'occurence).
    
imgTails ulLoadImageFilePNG("/tails.png"0UL_IN_VRAMUL_PF_PAL4);

    
//Les coordonn嶪s d嶨iniront le centre de l'image (pratique pour la placer directement au stylet)
    
ulImageSetRotCenter(imgTails);

    while(
1)
    {
        
//Lecture des touches
        
ulReadKeys(0);
       
        
//On place notre personnage  la m瘱e position que le stylet, comme 蓷 il le suivra
        
imgTails->ul_keys.touch.x;
        
imgTails->ul_keys.touch.y;
       
        
//On commence le dessin
        
ulStartDrawing2D();
        
        
//On dessine un fond en d嶲rad
        
ulDrawGradientRect(00256192RGB15(0024), RGB15(000), RGB15(000), RGB15(0024));
        
        
//On dessine notre mignon petit perso sur l'嶰ran
        
ulDrawImage(imgTails);
        
        
//Fin du dessin
        
ulEndDrawing();
        
        
//Attente de la VBlank (synchro  60 fps)
        
ulSyncFrame();
    }

    return 
0;

Brunni est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 01h08   #9
Bobby Sixkilla
Ma褾re Chinpoko-extra-mon
 
Date d'inscription: 10/11/2005
Localisation: Palaiseau (Rive sud)
Messages: 6 465
Voir les codes amis Nintendo DS
Par d嶨aut

T'assures Brunni.
Bobby Sixkilla est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 01h11   #10
Arcadia
Mod廨ateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compi銶ne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par d嶨aut

Citation:
Envoy par jujurackham
@Arcadia : tu n'arr皻es donc jamais de newser ?
Tant qu'il y a des nouveaux trucs sur le forum, moi ou Bobby on veille en faire la promo notre niveau, et le dodo passe apr鋊

Bravo Brunni, t'assures comme le dit si bien le su nomm Bobby !
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 01h16   #11
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par d嶨aut

Enfin tu le cr嶪 ce foutu topic
Au vu du code, c'est tr鋊 similaire OSlib et c'est que du bon
Yodajr est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 02h08   #12
Doud_
Membre confirm
 
Date d'inscription: 12/11/2005
Localisation: Cambrai
Messages: 327
Par d嶨aut

F幨icitation Brunni!

Je viens de jetter un oeil sur les 2 exemples (sur 幦u malheureusement, j'ai oubli ma DS ) et 蓷 a l'air tr鋊 sympa!

En plus le petit bout de code post donne vraiment envie de tester!

R.E.S.P.E.C.T
__________________
Peace
Doud_ est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 03h11   #13
Foxy
Membre confirm
 
Date d'inscription: 10/11/2005
Messages: 366
Par d嶨aut


Genial !!!
__________________
Mes releases persos, etc...
Foxy est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 03h34   #14
mastertop101
Membre confirm
 
Date d'inscription: 14/11/2005
Messages: 346
Par d嶨aut

Cool..! Une autre lib et ayant, il me semble, une autre approche que les 2 autres (ce qui est bien)
Faudra penser changer le logo palib dans les exemples par contre ;P
PAr contre, on peut s'attendre quoi ? un r嶪l concurrent ou un compl幦ent ayant des utilit廥 sp嶰ifiques?

Derni鋨e modification par mastertop101 ; 20/03/2007 03h39.
mastertop101 est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 08h12   #15
Brunni
Super Mod廨ateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par d嶨aut

Merci encore

Alors non ce n'est pas un concurrent, mais plut矌 un compl幦ent si j'ose dire (d'o le fait qu'elle est compatible avec PALib ). En fait l'avantage est que l on tire parti des capacit廥 suppl幦entaires du GPU 3D, comme par exemple une transparence plus pouss嶪 (support du canal alpha, et les objets peuvent blender entre eux), un plus grand nombre de sprites (1536 quads, c趔 jusqu' 1536 sprites, ou alors on mixe avec des maps, du texte et autres ), pas de limite quant au zoom (2x normalement), ni avec la taille des sprites (enfin si, mais c'est 2048 en largeur et hauteur donc bon). Enfin il est possible de dessiner des formes telles que des lignes, et de d嶨ormer librement les images. On pourrait imaginer des trucs sympa la Yoshi's island par exemple (les effets sp嶰iaux comme la planche qui tombe, les gros monstres, etc.)

Finalement, l'approche de 無ibrary est aussi diff廨ente, j'ai essay d'inclure en plus des fonctions bas niveau qui soient tr鋊 proches du hardware. Par exemple on peut carr幦ent faire des trucs du style pour ceux qui connaissent:
Code PHP:
ulDisableTexture();
ulVertexBegin(GL_TRIANGLES);
ulVertexSetColor(RGB15(3100));
ulVertexXY(x0y0);
ulVertexXY(x1y1);
ulVertexXY(x2y2);
ulVertexEnd(); 
Avec 蓷 on dessine directement avec le GPU (pour info 蓷 donne un triangle rouge non textur entre les points (x0,y0), (x1,y1) et (x2,y2)).

J'ai mis en ligne la documentation doxygen si vous voulez un aper蓰 des fonctions, il faut aller sous l'onglet Modules:
http://brunni.palib.info/new/ulib/do...gen/index.html

[Edit] Excellent ta news Arcadia merci
Brunni est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 11h50   #16
foosh
Membre confirm
 
Date d'inscription: 10/11/2005
Messages: 208
Par d嶨aut

ils t'ont pas encore embauch chez nintendo (ou ailleurs)? parce que ca m'a l'air d'etre au top encore...
foosh est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 15h24   #17
jujurackham
Membre confirm
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 804
Par d嶨aut

Brunni, je crois que si tu 彋ais une fille je serais tomb amoureux de toi

Plus s廨ieusement, je trouve 蓷 g幯ial !
__________________
[Projet GBA] Don't Erase Me !
jujurackham est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 15h55   #18
Arcadia
Mod廨ateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compi銶ne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par d嶨aut

Citation:
Envoy par Brunni
[Edit] Excellent ta news Arcadia merci
Y'a pas de quoi
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 15h55   #19
Brunni
Super Mod廨ateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par d嶨aut

Merci de vos avis
Par contre est-ce que quelqu'un a essay de coder avec?
Faites-moi part de vos difficult廥, questions ou points que vous pensez qu'il y ait am幨iorer
Brunni est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 16h09   #20
Noda
Membre confirm
 
Date d'inscription: 10/11/2005
Localisation: montr嶧l jusqu'au 4 mai, apr鋊 retour en france ^^
Messages: 570
Par d嶨aut

Miam, ca me donnerais presque envie de recoder mon homebrew avec tellement ca a l'air prometteur au niveau des effets je pense que pour mon prochain projet, je vais tater un peu de ta ulib
__________________
http://nodadev.wordpress.com
Noda est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 16h11   #21
Tembargo
Membre confirm
 
Date d'inscription: 21/11/2005
Localisation: Tōkyō
Messages: 3 018
Voir les codes amis Nintendo DS
Par d嶨aut

Clap Clap
__________________

Tembargo est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 16h29   #22
Beda
Thorgal
 
Date d'inscription: 15/02/2006
Localisation: 974
Messages: 479
Par d嶨aut

J'y ai vite fait touch en la combinant avec la Palib, 蓷 marche niquel.
Mais j'aimerais savoir comment profiter des 1536sprites .
Beda est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 19h20   #23
Brunni
Super Mod廨ateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 218
Par d嶨aut

C'est normal, PALib reste PALib, c'est pas pour autant que 蓷 va faire sauter la limite des 128 sprites. C'est lorsque tu fais le rendu avec 無ib (ulDrawImage, etc.) que tu peux avoir jusqu' 1500 sprites.
En fait, l'utilit de PALib est de faire des choses qui ne sont pas (encore) impl幦ent嶪s dans ma lib, c'est tout. Pour le reste, il vaut bien sr mieux utiliser mes routines, sinon 無ib perd son int廨皻
Brunni est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 19h35   #24
birslip
Membre confirm
 
Date d'inscription: 10/11/2005
Messages: 353
Par d嶨aut

Vous 皻es fous les gens, encore une lib . J'essaye 蓷, faute d'avoir une psp je n'ai pas pu essayer oslib, je vais donc essayer de me rattraper sur celle ci. Sinon l'id嶪 des multiples formats de fichiers est pas mal, mais j'imagine que 蓷 se ressent au chargement?
Pour la transparence, c'est tout ce dont j'ai toujours r瞚! Merci
__________________
Mon super blog!
birslip est d嶰onnect   R廧onse avec citation
Vieux 20/03/2007, 20h02   #25
Noda
Membre confirm
 
Date d'inscription: 10/11/2005
Localisation: montr嶧l jusqu'au 4 mai, apr鋊 retour en france ^^
Messages: 570
Par d嶨aut

franchement, j'ai mat un peu vite fait, et j'adh鋨e 100% au concept

La PALib s'adresse principalement un public d嶵utant ou voulant se simplifier la vie au max mais du coup limite pas mal les possibilit et est quand meme pas mal surcharg嶪 de fonctions "inutiles" pour des codeurs un peu plus avanc廥.

du coup pour moi ta lib se positionne au bon niveau:
- la libnds c'est sympa, mais c'est vraiment pour la branlette mentale si vous me permettez l'expression, car la plupart du temps on va se coder soi meme une petite lib par dessus pour faire les op廨ations les plus courantes plus facilement sans avoir 100 lignes juste pour afficher un sprite
- la PALib c'est bien mais trop rigide et trop plein de superflu pour ceux qui veulent optmiser un peu
- la solution interm嶮iaire me semble bien 皻re l'esprit de la lib: un peu comme sa lib perso qui vient se simplifier les fonctions de la libnds, sans pour autant enlever de possibilit au codeur

du coup j'esp鋨e que tu va rajouter quelques trucs, genre pour la gestion du son et des sprites/bg 2D, et ce serait vraiment la lib parfaite (a mon sens )

j'esp鋨e par contre que les sources seront dispo plus tard, c'est toujours utile
__________________
http://nodadev.wordpress.com
Noda est d嶰onnect   R廧onse avec citation
R廧onse

Liens sociaux

Publicit



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

R銶les de messages
Vous ne pouvez pas cr嶪r de nouvelles discussions
Vous ne pouvez pas envoyer des r廧onses
Vous ne pouvez pas envoyer des pi鋃es jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activ嶪s : oui
Les smileys sont activ廥 : oui
La balise [IMG] est activ嶪 : oui
Le code HTML peut 皻re employ : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h11.


丼it par : vBulletin® version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Tous droits r廥erv廥.
Version fran蓷ise #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince