Voir la version complète : [PSP] Librairie OSLib
OSLib
Librairie PSP
BETA
Version 2.10 (nouvelle, en test) (http://brunni.dev-fr.org/dl/psp/OSLib_210.rar)
Version 1.0 (vieille mais stable) (http://oslib.palib.info/OSLib.zip)
Présentation :
Bonjour tout le monde :)
Je vous présente le projet sur lequel je bosse depuis quelques temps: une librairie pour PSP. La première pre-release est enfin sortie, et la librairie est plus ou moins complète (il manque encore des trucs comme la lecture mod, vidéo, etc.) :)
Comme son nom l'indique (OldSchool Library), cette librairie vous permettra de faire de jolis jeux et démos tout en profitant de la puissance de la console. En plus, la librairie est complètement accélérée en hardware, donc finis les ramages après trois sprites qui se courent après! :p
Il y a de quoi dessiner des lignes, rectangles, dégradés à quatre coins, images étirées, en rotation, en alpha-blend, etc. Il y a également des fonctions de gestion du joypad et stick analogique. La librairie inclut également une section son, qui peut jouer des sons en .wav et .bgm, avec la possibilité de streamer les sons depuis la MemoryStick.
La librairie est écrite en C histoire d'être compatible avec tous les projets, mais ça la rend un peu moins pratique. Elle est rapide et ne prend pas le contrôle sur votre application: elle effectue des opérations bien définies, un peu comme les fonctions de base que vous devez de toutes façons écrire pour le moteur de votre jeu.
Comment utiliser :
Pour l'installation, modifiez le batch pour que la ligne suivante pointe sur l'installation de cygwin:
set CYGWINDIR=C:\cygwin
Autres informations :
Des exemples peuvent être téléchargés ici:
http://oslib.palib.info/samples/
Merci d'avance pour vos commentaires. ^^
Genial Brunni, comme d'hab j'allais dire ^^
Dommage que j'ai pas de psp pour m'amuser avec ça.
Génial ! :w00t:
Woaw :blink:
Franchement merci Brunni, j'attendais une lib PSP, mais bzouing quoi, Mollusk qui fait une lib DS, Brunni une lib PSP, bordel mais vive PA :wub:
Je reconnais bien ton style au niveau du fichier d'aide ^^
J'men vais tester ça, fichues journées de 24H v_v
scusez le manque de vocabulaire de ce post :whst:
Je vais attendre un peu (d'avoir fini ce que j'ai a faire...) avant de passer à la PSP, mais en tout cas c'est déjà un bonheur d'imaginer utiliser cette belle grosse resolution :p
Merci, mais non c'est pas le but que vous abandonniez la GBA & DS :p
D'ailleurs vous verrez le style de prog est très différent de ces consoles, mais les deux sont sympa ^^
Je reconnais bien ton style au niveau du fichier d'aide ^^Lol je sais c'est pas très fourni et il n'y a même pas de table des matières, mais ça viendra ^^
Par contre, je fais des fois de petites updates sans forcément prévenir. Je l'ai déjà fait deux fois depuis le post d'ailleurs.
Meme si j'ai pas encore pu tester, faudra que je regarde ca :p mais c'est clair que ca a l'air terrible !
Donc Brunni, si j'ai bien compris, si veux afficher des "sprites", j'affiche autant d'images PNG que necessaire ?
Et aussi, vu que tu code sur PSP, je me demandais si tu utilisais PSPOss ? car à ce que j'ai pu en voir, il a l'air assez pratique pour nous : l'usb activé en permanence, des racourcis vers le applis sur le "bureau" et surtout plus de vidéo de lancement (le truc PSP sur fond blanc qui prend 2H sur une 1.5 >_< )
J'ai essayé avec FileAssistant++ et il n'y a pas d'écran PSP mais c'est lent quand même (il faut bien laisser le temps à ton jeu jeu de se charger depuis la MS...), donc en fait tu ne gagnes pas grand chose... ^^
Pour les sprites c'est bien comme ça qu'il faut faire B)
D'ailleurs une map est une aussi série de petits sprites ;)
Vala comme convenu mes questions :p
Vala en fait: je ne comprend pas la partie graphique.
Ou plus précisement, comment fait tu pour obtenir ce résultat (la map) ?
Voila ce que j'ai compris en faisant le parralèle avec mes connaissances en prog GBA/HAM :
Déja il ne semble pas y avoir de palettes à charger (tant mieux ou pas, on s'en fou un peu pour l'instant)
Puis tu charge le tileset, qui n'est plus un fichier C comme j'ai l'habitude, mais un fichier PNG normal.
Et enfin tu crèe la map en utilisant le tileset et le fichier map, qui lui est toujours en C :)
Bon jusque la ca va, sauf que je ne sait pas comment reproduire ca avec ma propre map >_<
Vala la question : comment toi tu fait ? surtout ce fichier PNG, d'ou sort il ? tu utilise donc un autre éditeur de map que GBA Graphics ? Ou alors j'ai raté une option dans GG ?
2eme thème : les touches.
Dans ton exemple, tu appelle oslReadKeys(); au milieu du code, après les tests des boutons et avant le test du joystick... il y a une raison spéciale ou c'est un oubli/hasard ?
Vala c'est tout... et installe VS c++, ca vaux vraiment le coup ;)
Je crois qu'il ne faut pas faire de parallèle avec le dev gba/DS
Vi, mais bon je connais que ça ^^
C'est pour ca qu'il nous a fait cette lib :)
* Bon déjà tu me l'avais demandé dans le MP, le fait que les ressources soient des fichiers et non du code provient d'une différence fondamentale entre la GBA/DS et la PSP. Il faut savoir que sur PSP, on ne peut pas lire directement sur la Memory Stick; lorsqu'on le fait c'est par blocs et c'est ultra lent, contrairement à la GBA où on a directement accès à toute la cartouche.
On est donc obligé de charger en RAM tout ce qu'on veut utiliser, y compris notre "ROM" (jeu), qui est chargé entièrement par la PSP au démarrage. C'est pourquoi on doit faire en sorte qu'il soit le plus petit possible, parce que toute la place prise par le code réduit en même temps la RAM disponible (déjà pas grande à la base).
Si j'inclus mon image ou ma map au code, elle sera rajoutée au jeu, résultat ça va plomber la RAM pour rien, même si on n'aurait pas forcément besoin du tileset "feu" dans un niveau de glace par exemple ;)
Pour ça, on utilise les fichiers, car ils sont sur la MS, mais on les charge en RAM à la demande. C'est plus lent (loading powaa...), mais au moins on peut limiter au max la RAM utilisée.
* Pour la map, ce sont des sprites. Actuellement elle est implémentée de façon optimisée donc ça ne sert à rien que je te copie le code parce que tu y comprendras encore moins qu'avant :p
Mais tu peux prendre directement une map de GBA Graphics, à l'avenir ce sera un fichier à charger. Je peux essayer de te développer une routine simple étape par étape pour voir. Imaginons que tu as trois tiles, une vide (0), une avec de l'eau (1) et une avec un bout de terre (2). Pour simplifier elles sont dans trois images différentes. Ensuite tu as un tableau qui définit où sont les différentes tiles, exemple:
const unsigned short mamap[5][5]= {
{0,0,0,0,0},
{0,2,2,2,0},
{1,1,1,1,1},
{1,1,1,1,1},
{1,1,1,1,1}
};
C'est ça une map. Après il suffit d'afficher les bonnes tiles au bon endroit. Exemple, si on a trois images, on peut les dessiner ainsi:
for (y=0;y<5;y++)
for (x=0;x<5;x++) {
//Pour chaque bloc du tableau, on le dessine à l'écran aux positions * 8 (une tile fait 8x8)
if (mamap[y][x] == 0)
oslDrawImageXY(x*8, y*8, image0);
else if (mamap[y][x] == 1)
oslDrawImageXY(x*8, y*8, image1);
else if (mamap[y][x] == 2)
oslDrawImageXY(x*8, y*8, image2);
}
Résultat tu remplis tout ton écran à coup de 8x8, et t'as une map. La différence ici c'est qu'on peut appeler:
oslSetImageTileSize( image, x, y, largeur, hauteur);
Pour définir quelle partie de l'image on dessine. Par exemple si on a une image de 128x128 qui contient 16 sprites de 32 par 32, on peut afficher le premier ainsi:
oslSetImageTileSize(image, 0, 0, 32, 32);
oslDrawImageXY(0,0, image);
Puis le quatrième, tout en haut à droite:
oslSetImageTileSize(image, 96, 0, 32, 32);
oslDrawImageXY(0,0, image);
Ca veut dire qu'on dessine un sprite de 32x32 contenu dans l'image à partir de la position 0,0 (et 96,0 pour le deuxième).
* GBA Graphics ne supporte pas la PSP actuellement, par contre je le recoderai peut-être complètement à l'occas, parce qu'il se fait vieux. Pour le moment je convertis le tileset et la map avec GBA Graphics et après je choisis mon tileset et je fais Ctrl+C (copier l'aperçu) et je le mets dans un fichier PNG, mais c'est mauvais parce qu'on perd un peu de qualité.
* Pour les touches c'est une erreur, je ne devrais pas les utiliser avant oslReadKeys :p
Pour les maps, le principe n'a rien à voir avec la GBA, tu ne copie pas une map ou palette quelque part, tu fais appel à une fonction qui dessine ta map. En fait c'est un peu le mode 3 avec encore moins de choses: pas de palette, pas de maps, pas de sprite (contrairement à la GBA), rien du tout, juste un grand écran vide.
Après tu commences à dessiner calmement ton écran, en faisant appel aux fonctions de dessin de sprites et autres. Le fait de dessiner successivement des sprites et des maps les uns sur les autres donne le même rendu que sur la GBA: les plans qui sont dessinés en dernier seront en avant puisqu'ils écrasent ceux de derrière.
Pour les maps, laisse moi un peu de temps, là c'est un peu foireux parce que je ne peux pas les intégrer à GBA Graphics, mais essaie de comprendre les principes de ce style de "dessin libre" sur l'écran, en dessinant des sprites par exemple. Tu devrais même pouvoir écrire ta propre routine de maps une fois que tu as compris le principe, donc pas besoin de la mienne :p
N'hésite pas à demander plus de choses si tu es bloqué... ;)
Merci merci, ca s'éclaircit un peu :wub:
C'est sur que j'aurais pas réussi à piger ça rien qu'en regardant le code :p
Prochain objectif : afficher (soyont fous) plusieurs map et simuler un paralax :D
PS : ne tiens pas compte de la derniere phrase de mon MP :whst:
salut, bravo brunni pour tes travaux, ca permet de voir comment maitriser la bete.
si il existai un emulateur je m'y mettrai bien mais malheureusement ce n'est pas le cas :(.
j'adore le fait d'avoir un ecran vide ou tu fait tout toi meme de A a Z c'est trop cool :)
brunni en ce qui concerne la 3D tu as testé un peu ou pas ?
a titre d'information (bien entendu :ange: ) esque le devkit officiel psp est en circulation sur le net ? et esqu'il comprend un pseudo-emulateur ?
edit: #define RGBA16(r,v,b,a) ((((b)>>3)<<11) | (((v)>>2)<<5) | ((r)>>3)) un "a" de trop la non ?
alpha, non ?
oui mais... il sert a quoi dans la cas present ?
peut-etre que dans d'autres macros il sert, donc il est mis pour 'harmoniser' les macros en demandant toujours la meme chose
peut-etre que dans d'autres macros il sert, donc il est mis pour 'harmoniser' les macros en demandant toujours la meme chose
non il en a d'autres qui n'ont que 3 valeurs donc c'est pas une question d'harmonie (echec ^^... et mat ?)
lol, pas faux :p (j'ai pas regardé, ce n'était que des suppositions...)
Bon, 1 point pour toi, cette fois-ci c'est toi ou moi qui cherche un topic où se fighter ? ;)
lol, pas faux :p (j'ai pas regardé, ce n'était que des suppositions...)
Bon, 1 point pour toi, cette fois-ci c'est toi ou moi qui cherche un topic où se fighter ? ;)
hehe t'imagine ^^ -> "ah comment ca ma routine n'est pas optimisée !! tu fais le malin ?!! je te provoque au quizz codage ce soir a 21h !!!!" :D
C'est effectivement pour harmoniser, pour que chaque routine ait une version RGB et RGBA (après si c'est inutile on s'en fout) :p
Donc en 16 le A sert à rien, ça revient au même que RGB, mais en 12 par exemple:
#define RGB12(r,v,b) ((((b)>>4)<<8) | (((v)>>4)<<4) | ((r)>>4))
#define RGBA12(r,v,b,a) ((((a)>>4)<<12) | (((b)>>4)<<8) | (((v)>>4)<<4) | ((r)>>4))
Par contre là je vais l'enlever, ça évitera de croire qu'on a un canal alpha en mode 16 bits...
Sinon voici un petit tutorial pour ceux qui viennent de la GBA (doc/debut.htm), inclus au nouveau zip: http://membres.lycos.fr/brunni/OSLib.zip (clic droit enregistrer sous)
Désolé de le mettre sur lycos mon compte sur infernobox ne marche plus :( Si quelqu'un connait un meilleur hébergement gratuit, je suis preneur, parce que lycos... :berk:
Bah je peux t'offrir un hébergement, mais ca sera sur palib.info... donc si ca te dérange pas je t'ouvre un acès ftp dessus :)
Et vlan le Nes, un point pour Momo...
IWRAM ou pas ? la ram quelle taille ? vitesse de transfert ram->cpu ? quel compillateur ? le code généré est optimisé ? tu aime le chocolat ? plottage par 2 ou 3 possible par le hard ?
:)
tu aime le chocolat ?
Trop dure les questions de nes, j'vous jure ma ptite dame >_< ^^
Et stop le hors sujet, il faut que je me concentre pour mon parallax :p
Pas d'IWRAM mais 20 Mo de DDR (les tests disent 50 Mo/sec mais je crois que c'est 150) pour le jeu + données et 2 Mo d'eDRAM (650 Mo/sec je crois) pour la VRAM (donc écran & textures).
Compilateur: GCC (pourri)
Optimisation: aucune idée
Chocolat: ovomaltine powaa :lol:
Plottage par 3 j'ai jamais vu ça :whst:
Le hard plotte des polygones 3D, donc pas qu'un pixel à la fois :p
Ca y est, Nes a perdu la boule, son cerveau a subis une compression lors d'une tentative trop grande d'optimisation.! ^^
650 mo/sec Oo ca bombarde dit donc Oo, gcc est pas mal voyon !!, tu requisitionne tout les registres asm tu peut plotter par 3 mais ca depend de combien tu en a dispo sur psp, sony a donné une moyenne de polygones/sec comme nintendo pour la nds ? (ils on dit 2000 pour la nds ... mais je pense qu'ils on oubliés qu'un polygone sans texture ca le fait pas trop dans un jeu <_< )
yodajr calme toi ou je te met une rouste ce soir sur irc :) :devil:
Ca y est, Nes a perdu la boule, son cerveau a subis une compression lors d'une tentative trop grande d'optimisation.!
tu plaisente mais c'est vrai que ca devient maladif des fois :cry:
Sony ont dit 33 millions de polygones (c'est-à-dire triangles, il en faut toujours au moins deux) mais c'est des gros mytos. Même en les dessinant sans rien (pas de texture, pas d'effet, etc.) à une taille minuscule (invisible) et en optimisant au max on arrive à 16 millions de triangles par seconde dans les tests faits sur ps2dev.org v_v
Par contre en temps normal on peut quand même faire une bonne centaine de milliers de sprites par seconde s'ils sont petits (les performances dépendent de la grandeur et des effets appliqués vu que le GPU est un processeur comme un autre, donc plus il a de pixels à dessiner ou d'effets à appliquer, plus il ralentit). Après tout est fait à base de ça, les maps c'est des petits sprites à la suite, le texte aussi, etc.
2000 par seconde pour la DS je pense que c'est faux, ça ferait pas assez, déjà la Sega 32X annonçait 50'000 polygones (et c'était pas trop ça)... Après tout dépend des conditions dans lesquels les tests sont réalisés... parce que bon Sony annonçait bien 4.5 milliards de polygones par seconde pour la PS1... et on a vu le résultat :rolleyes:
pour la NDS , c'est 2.000 poly par frame que le hard supporte, pas par seconde.
mais tout ça c'est bien théorique, quand on dit 2.000 poly poar frame c'est ce que le gpu peut afficher quand on lui a mis dans la tronche la liste de 2.000 poly...
... faut déja la créer la liste de 2.000 poly et lui envoyer en temps et en heure !!
le challenge sur ces consoles, c'est pas l'affichage 3d lui meme, pusique on a un cpu qui fait ça ( adieu les routines de mapping, clipping, tri en z, etc... )
le challenge c'est de bien gerer le moteur 3d qui nous est offert, et là c'est plus du tout la meme histoire: gerer les matrices hardwares, optimiser les files d'affichages, etc...
Mikegba... j'ai envie de dire oui...
(non, parce que j'ai rien compris donc on va dire que je suis d'accord avec toi ;))
mikegba> 2000 polys... la display list est petite alors :(
Y'a pas moyen de le faire en plusieurs fois? Je sais que j'ai le même problème sur PSP, si la taille max de la liste est atteinte on ne peut plus rien faire, mais on peut dire au GPU de terminer la liste, la virer et en recommencer une nouvelle, résultat on n'est pas réellement limité...
mikegba> 2000 polys... la display list est petite alors :(
Y'a pas moyen de le faire en plusieurs fois? Je sais que j'ai le même problème sur PSP, si la taille max de la liste est atteinte on ne peut plus rien faire, mais on peut dire au GPU de terminer la liste, la virer et en recommencer une nouvelle, résultat on n'est pas réellement limité...
oui, 2048 poly par frames.
Mais, c'est en fait 2048 poly réellement affichés. Si par exemple ta liste comporte 3.000 poly, mais que 1.000 ne sont pas affichés par exemple en cas de face cachée, alors la ds va e afficher 2.000
si ta liste fait 3.000 poly, et que 2500 doivent etre affichés, seuls 2048 seront affichés, le reste ignoré.
sinon, tu ne peux pas recharger ta liste une deuxieme fois.
en gros, c'est comme l'oam, sauf qu'au lieu d'avoir une liste de sprite, t'as une liste de poly.
T"as posté sur des forums fréquentés par des développeurs ou pas ?
Non. Mais de toutes façons ma doc est en français et je ne peux pas la traduire tout seul, donc ça ne sert pas à grand chose de poster sur un autre forum (et je ne connais que ps2dev.org)...
Ici y'a pas l'air d'avoir la moindre personne intéressée hm? :(
pas de PSP, dsl. Sinon, ça aurait été avec plaisir.
Bah, Japi, suffit de demander à yopyop de nous pondre un ému PSP pour dans 2 semaines ;)
Y'a pas un moyen de se passer de Cygwin ? Avec Devkit Pro PSP par exemple ...
Ben en fait j'ai pas testé, désolé. Faudrait voir. Mais si tu prends devkitpro il faudra pouvoir installer le PSPSDK par dessus, et ça j'ai pas testé, mais si tu y arrives, ce serait sympa de nous en faire part, parce que ce serait vraiment bien ;)
[Edit] http://72.14.207.104/search?q=cache:76RL_5dHnKwJ:forums.ps2dev.org/viewtopic.php%3Ft%3D1809%26view%3Dnext%26sid%3D310 443bcf3460003c03e9ca51d1f04f7+pspsdk+devkitpro&hl=fr&gl=ch&ct=clnk&cd=1
J'ai mis à jour la librairie. ^^
Il y a vraiment énormément de trucs en plus. Je pense que certains d'entre vous adoreraient, déjà de pouvoir utiliser les floats, faire des divisions (si si :p), calculer le sinus/cosinus en temps réel :) Ensuite, les effets de transparence sont quasi illimités (teinte, addition, soustraction, alpha channel, etc.), vous pouvez faire des rotations et zooms sans limite de taille et avec le filtre bilinéaire, dessiner plusieurs dizaines de milliers de sprites par seconde, etc. :)
Téléchargement: oslib.palib.info/oslib.zip
rhoooooooooooo, ça doit etre terrible.
Vivement j'ai des sous pour une psp, ya du gros potentiel.
Merci Brunni.
Je viens de le télécharger et de tester, c'est vraiment du bon boulot!
Va vraiment falloir que je me motive pour m'y mettre..... :p
T'inquiete phantom, ca viendra :ange:
Brunni, une question : combien peut on jouer de sons wav en même temps ?
Car là visiblement, sauf fausse manip de ma part, on ne peut jouer qu'un seul à la fois ? :unsure:
Et désolé pour la coupure, mais msn m'a fait des siennes ce soir >_<
Je te fait la version en anglais demain si j'ai le temps ;)
La PSP a 8 canaux audio, donc normalement 8 sons en même temps ^^
En fait quand tu joues ton il son faut préciser le canal que tu utilises, genre oslPlaySound(musique, 0) -> voie 0, après si c'en est un différent, oslPlaySound(son, 1), etc.
Si tu rejoues un son même différent sur une même voie, le nouveau arrêtera l'ancien. C'est pratique pour les jeux: si mario prend 5 pièces en même temps, tu vas pas jouer 5 fois le son de la pièce sinon ça pètera les oreilles du joueur. Donc chaque pièce arrête l'ancien bruit de pièce, histoire qu'on n'en ait pas deux en même temps.
lol c'est ce qui se passe avec mon mario GBA :whst:
oki merci.
C'est pas spécifié dans la doc ca ^^
lol c'est ce qui se passe avec mon mario GBA :whst:
Hmmmm tu fais tourner YodaJr :whst: ?
Ben kinski, le problème dont parle brunni est déja présent dans la derniere update publique de mon mario ;)
La prochaine aura lieu bientot B)
Mise à jour!
Il y a de nouvelles améliorations diverses comme la possibilité de prendre des screenshots et d'enregistrer des images en PNG, ou de boucler ou mettre en pause les sons.
La documentation est beaucoup mieux faite et elle est maintenant traduite en anglais (merci Yodajr).
Il y a aussi de nouveaux exemples réalisés par Yodajr et moi-même: http://oslib.palib.info/samples/
Pour télécharger la nouvelle version: http://oslib.palib.info/OSLib.zip
Enfin, Yodajr et moi même participons à la compo neoflash avec ce projet. Lien: http://www.neoflash.com/forum/index.php/topic,1879.0.html ^^
:bravo: brunni et merci yodajr pour la new, ca fait envie ces gfx, vraiment dommage qu'il n'y ai pas d'emulateur >_<
j'ai une question brunni tu affiche les sprites sur des faces 3D ? si c'est le cas tu pourrai utiliser les propriétés du gpu pour tes differants effets dessu au lieu de le faire en soft, tu gagnerai pas mal en temp cpu. B)
Ben c'est déjà ce que je fais, sinon ce serait difficile de faire des effets comme ça sans que ça rame :p (dégradé de fond + 8 maps + musique + sons + texte = 40% de CPU :w00t:)
Ben c'est déjà ce que je fais, sinon ce serait difficile de faire des effets comme ça sans que ça rame :p (dégradé de fond + 8 maps + musique + sons + texte = 40% de CPU :w00t:)
ah j'ai rien dit alors c'est cool :thumb_yel
bonne chance pour la compo presentez quelques petits projets fait a l'arrache comme ca au moin vous rammasserai tout les prix de la section psp ^^
Bah il y a beaucoup de projets présentés maintenant (c'est cool d'ailleurs), et d'autres vont encore venir, donc c'est déjà loin d'être sûr qu'on gagne un prix avec OSLib, alors bon, les petits projets... :rolleyes:
Tembargo
20/03/2006, 09h13
Beau travail et bon courage :w00t:
Super boulot !! Bravo, ça donne envie de coder sur psp :p
Encore félicitation, et merci :wub:
ça donne envie de coder sur psp :p
C'est un peu le but, hein ^^
Bodom-Child
20/03/2006, 16h49
Ah ben maintenant je sais pour quoi je vais voter dans les PSP App :)
Excellent travail! Ca me donnerait envie d'acheter une PSP ^^
choupette
21/03/2006, 09h40
bonne initiative, je l'utiliserai bien pour faire un editeur sgf, parce que sortir ma psp pour noter une partie de go, ca a autant de gueule que de sortir un pda =).
en fait, ce qui me bloque, c'est l'absence d'emulateur pour tester et le fait que je vais probablement etre oblige d'upgrader pour pouvoir jouer a un moment ou un autre.
Si tu es en 1.5, tu n'auras JAMAIS besoin d'upgrader pour jouer, je pense ;)
Sinon, par la suite il faudra peut-être un moyen hardware pour downgrader les 2.01+, mais ce sera comme sur DS ;)
(enfin j'espère, parce que là y'a de moins en moins de 1.5, mais bon avec l'eLoader les progs OSLib tournent aussi sur les firmwares 2.0 et plus ;))
choupette
21/03/2006, 09h51
Si tu es en 1.5, tu n'auras JAMAIS besoin d'upgrader pour jouer, je pense ;)
Sinon, par la suite il faudra peut-être un moyen hardware pour downgrader les 2.01+, mais ce sera comme sur DS ;)
(enfin j'espère, parce que là y'a de moins en moins de 1.5, mais bon avec l'eLoader ça tourne aussi sur les firmwares 2.0 et plus ;))
j'ai effectivement une 1.5, corrige moi si je me trompe :
- les jeux actuels obligent a upgrader la console
- le seul moyen de contourner est une appli bizarre que je n'ai meme pas envie de regarder. (et qui ne fonctionne pas avec tous les jeux)
c'est bien ca ?
comme j'ai envie d'acheter (*enfin*) un jeu qui me tente sur psp, (katamari en fait) je vais devoir l'upgrader, non ?
mais bon pour le sport, je le ferais bien, ca fait longtemps que j'ai pas fait de C.
EDIT: sinon, je t'envois un mp pour te proposer un truc.
Bonjour Brunni,
Deja merci pour ta lib qui à l'air vraiment tres sympa :wub:
Il me semble que j'ai lu quelque part (?) qu'une sorte d'emulateur d'oslib serait en developpement sur pc pour permettre de coder & debuguer directement sur un pc les programmes avant de les tester sur psp ?
Ai je revé ?.. :blink:
Sinon, y aura t'il des fonctions de lecture mp3/mod, xm, etc... dans le futur ?
Merci,
Alain
Bienvenue à toi :)
Pour l'«ému», c'était un projet que j'avais commencé à faire en utilisant OpenGL, malheureusement il y a pas mal de différences internes entre un PC et une PSP qui font que ce n'est pas possible. Enfin, il faudrait le faire complètement en software.
Donc ça demanderait à peu près autant de boulot que de coder un émulateur PSP complet (et j'ai pas trop le temps ni l'envie pour le moment), donc c'est abandonné, désolé :(
Pour les modules (mod, xm, s3m), c'est prévu, mais je sais pas encore pour quand. Pour le MP3 je pense pas, vu que ça demande énormément de puissance donc ça n'a pas beaucoup d'intérêt pour un jeu (le BGM prend 2x plus de place, mais demande 50x moins de puissance ;)).
Sinon merci :)
appli bizarre que je n'ai meme pas envie de regarder [...] je vais devoir l'upgrader, non ?
Ben si tu rejette une solution qui fonctionne très bien, la reponse est oui, tu devras upgrader...
Pour les MP3, je regarde un wav 22Khz PCM mono de 1,66Mo :
En MP3 128kb il ne fait plus que 619ko.
Et en BGM, le format que lit OSLib (qui est une sorte d'ADPCM, je me trompe brunni ?), il ne fait plus que 426ko.
Voila quoi, je vois pas trop l'urgence de lire les MP3 :whst:
Par contre les modules, je dit pas non, ce même wav est tiré d'un IT qui fait... 90ko :p
Oui, les modules ce serait bien :)
Sinon je vais bientôt releaser le code source, si ça peut encourager des gens à s'y mettre :p
Vous pourrez librement l'utiliser et la customizer dans vos projets avec ça, donc vous n'aurez pas les désavantages des libs ^^
Bodom-Child
21/03/2006, 21h47
Rien à voir, mais a voté ^^.
J'espère vraiment que tu vas gagner, tu le mérites! Tout comme Mollusk et sa PALib l'année dernière :) !
Voté pour toi aussi
et en toute sincérité, c'est certainement toi qui le mérite le plus
Bodom-Child
22/03/2006, 15h02
bah nan, c pa sur psp c tro nul rien avoir y son ou lé grafik?!
Bodom-Child
22/03/2006, 15h03
C'est ici (Aztec Challenge - message subliminal)) (http://www.neoflash.com/forum/index.php?topic=1939.0) pour les jeux NDS
et ici pour las apps PSP (http://www.neoflash.com/forum/index.php/topic,1941.0.html) ;)
EDIT :
et ici pour MarcaDS ^^ (http://www.neoflash.com/forum/index.php/topic,1940.0.html)
c'est où pour voter ? :)
N'écoute pas Bodom-Child, c'est ici:
http://www.neoflash.com/forum/index.php/topic,1939.0.html
et il faut cliquer sur le petit rond juste à droite de "GameBox DS --- By: Gwoin".
C'est assez mal expliqué sur le site, mais c'est ce qu'il faut faire :whst:
bah nan, c pa sur psp c tro nul rien avoir y son ou lé grafik?!
Tu rigoles mais regarde ça (http://www.neoflash.com/forum/index.php/topic,1879.msg12903.html#msg12903) :whst:
Dr.Vince
22/03/2006, 15h59
C'est ici (Aztec Challenge - message subliminal)) (http://www.neoflash.com/forum/index.php?topic=1939.0) pour les jeux NDS
et ici pour las apps PSP (http://www.neoflash.com/forum/index.php/topic,1941.0.html) ;)
EDIT :
et ici pour MarcaDS ^^ (http://www.neoflash.com/forum/index.php/topic,1940.0.html)
j'ai voté la même !! ;)
Sinon je vais bientôt releaser le code source, si ça peut encourager des gens à s'y mettre :p
Vous pourrez librement l'utiliser et la customizer dans vos projets avec ça, donc vous n'aurez pas les désavantages des libs ^^
Revenons un peu au sujet ^^
J'attend avec impatience le jour où j'aurai une PSP pour tester le developpement dessus. A ce moment là, je pense que les sources de ta librairie me seront d'un tres grand secours.
Donc si ça ne te gêne pas de les distribuer, n'hésite surtout pas ;)
Bonjour Brunni,
Apres avoir lu/digéré la doc d'osllib, je vois que la gestion, en particulier des images vram est assez.. compliquée (l'histoire d'effacer les images dans un certain ordre plutot qu'aleatoirement)
Donc ce fameux gestionnaire VRAM est il dans tes projets ? ( ce serait bien ^^ )
Merci,
Alain
Disons qu'il n'est pas dans mes projets prioritaires ^^
Comme la VRAM est très petite (2 Mo) et qu'on ne peut pas fragmenter les données comme sur PC, avec le gestionnaire on pourrait:
- se retrouver dans des cas où on ne peut plus rien mettre en VRAM alors qu'en fait il en reste encore.
- avoir des blocages du style un quart de seconde de temps en temps lors du "garbage collect"
Donc ce serait pas l'idéal. Et de toutes façons comme la VRAM tu n'en as besoin que dans certains cas bien particuliers (très grosse vitesse, ou si tu veux dessiner dessus), d'habitude tu mets tout en RAM donc c'est pas trop un problème ;)
Bonjour Brunni,
J'ai une question concernant les images :
je voudrais faire des "sprites", donc objet independants, avec coordonnées x,y, image,etc.....
Si j'ai bien compris la doc, quand on crée une image, elle a aussi toute une serie d'infos genre x,y,...
Du coup, si j'ai bien saisi le truc, si je veux faire une serie de sprites qui ont la meme image, il faut que je charge la premiere image, puis que je cree autant de copies de l'images que de sprites ?.. (methode copie d'image ?..)
le membre "bool isCopy; //Est une copie d'une autre image (=ne pas la libérer)" me fait penser que non, mais je ne saisis pas la maniere de faire ..
Merci,
Alain
En fait le moyen simple si tu veux dessiner une partie d'image (exemple: 16x16 depuis 0,0):
oslSetImageTile(tonImage, 0, 0, 16, 16);
oslDrawImage(tonImage);
Sinon, pour créer une image qui représente une partie d'une autre:
tile = oslCreateImageTile(image, 0, 0, 16, 16);
[...]
oslDrawImage(tile);
[...]
oslDeleteImage(tile);
L'image "tile" représente une partie de "image", mais ce n'est pas une copie! Si tu dessines par exemple du texte sur "image", ça affectera aussi "tile" vu que "tile" est un bout de "image" ;)
Merci pour ton eclaircissement!
Par contre, oslSetImageTile n'existe pas dans la doc ?
Y'en a t'il une plus recente ?.. :o
Merci,
Alain
En fait, c'est dans la section "général/images" (description et utilisation) et dans "référence/macros" (infos techniques).
Bonjour Brunni,
Aurais tu prevu des ameliorations sur ta lib bientot ?
Autrement dis y travaille tu encore ou peut on considerer que c'est une version finale ?
Merci,
alain
Bonjour Brunni,
Aurais tu prevu des ameliorations sur ta lib bientot ?
Autrement dis y travaille tu encore ou peut on considerer que c'est une version finale ?
Merci,
alain
Il n'y aura jamais de version finale, pour le moment ce n'est pas la lib qui evolue mais un **********eur ... ensuite la lib sera a nouveau mise a jour
Comme l'a dit Phantom je travaille actuellement sur un changement important qui demande énormément de boulot, et pour le moment je ne peux pas updater la lib (elle n'est pas même recompilable). Donc non je n'ai pas abandonné, il faut juste être patient :)
Après ça, la librairie devrait passer en stade "bêta", et non plus "alpha", et être également équipée d'un numéro de version ;)
Chouette! :lol:
Donc tu suis la trace de jge, c'est bien :)
J'ai essayé jge mais bon c'est assez confus je trouve.. Du coup je reessaye Oslib..
Avec un emu ce serait sympa, mais bon avec l'excellent psplink c'est tout de meme jouable le developpement en direct sur la psp..
Courage Brunni!
Alain
Bonjour Brunni,
Oui c'est encore moi.. :-'
Je fais quelques petits essais d'images qui bougent (tu sais mes sprites :whst: )
Alors je fais donc mon chargement d'image, qui contient les tiles (differentes phases d'anim)
gameTiles = oslLoadImageFile("rsc/ship.png", OSL_IN_RAM, OSL_PF_5551);
puis je crée une image qui va correspondre à la premiere etape de l'anim de mon perso :
ship = oslCreateImageTileSize(gameTiles, 0, 0, 16, 24);
tout se passe bien, sauf qu'a un moment il faut passer a la 2 eme phase d'anim, donc faire pointer sur 16,0 dans l'image des tiles..
Alors je me suis dit :
oslDeleteImage(ship);
puis
ship = oslCreateImageTileSize(gameTiles, 16, 0, 16, 24);
mais c pas bon, vu que si l'image change bien, je perds toutes mes données de x,y, strecth, etc.... >_<
du coup, je me dis, tiens ya un membre de l'image qui s'appelle offsetX0, c'est peut etre mon fameux X0 ?
je sors un magnifique ship->offsetX0=16;
et ça plante ..
Je n'ais donc pas pigé le bon truc je pense..
Merci d'avance pour une idée Brunni ? :ange:
Alain
OSL_IMAGE *temp,*ship;
[...]
temp = oslLoadImageFile("rsc/ship.png", OSL_IN_RAM, OSL_PF_5551);
goomba = oslCreateSwizzledImage(temp, OSL_IN_VRAM);
oslDeleteImage(temp);
[...]
oslSetImageTile(ship,0,0,16,24);
ship->offsetX0 = 16;
oslDrawImage(ship);
Tu n'as pas besoin de créer un ship, ni de l'effacer pour modifier son affichage, tu modifie, c'est tout : au prochain osl_DrawImage, il t'affichera ton image avec les modifs.
Je pense que j'explique en détail(s) ce que tu veux faire ici (http://www.playeradvance.org/forum/showthread.php?t=2178) ;)
Merci pour votre aide à tous les deux! :)
je vais essayer ça!
alain91> Le plantage n'est pas normal en effet, j'imagine que c'est dû à une division par zéro (j'y jetterai un oeil). Si tu fais:
ship = oslCreateImageTileSize(gameTiles, 0, 0, 16, 24);
Tu auras: offsetX0 = 0, offsetY0 = 0, offsetX1 = 16, offsetY1 = 24;
Ca veut dire le rectangle suivant (0,0, 16,24) dans l'image. Maintenant si tu mets offsetX0 à 16, tu as (16,0, 16,24), soit une largeur de 0, ce qui n'est pas possible. Si tu mets offsetX0 à 16, tu dois aussi mettre offsetX1 à 32 (16+16) si tu veux dessiner une image de 16 pixels de large... ;)
Yoda_jr,
J'ai regardé ton tutorial, et effectivement je viens de comprendre la manip, donc merci! :)
Toutefois, si jamais tu changes les coeff de taille et/ou rotation, en utilisant ta mehode tu perds ces infos (taille/rotation)...
bon sinon, ca marche :)
Toutefois, si jamais tu changes les coeff de taille et/ou rotation, en utilisant ta mehode tu perds ces infos (taille/rotation)...
Pas si tu applique ces modifs de taille et rotation a chaque fois ;)
Bonjour Brunni et tous sur ce forum,
J'essaye, avec oslib ou le kit psp, de créér un masque d'un sprite.
Je precise ce que j'appelle un masque :) :
C'est en fait le sprite lui meme, mais comme si il etait en une seule couleur.. Un peu comme une silhouette ou une ombre..
Donc autant ça ne me parait pas compliqué de le faire en soft, autant j'ai du mal avec le hard...
J'aimerais bien savoir si d'apres toi, on pouvait faire ça avec le hard de la psp..
fonctions blend ? stencil ?
Merci pour toute aide,
Alain
Heu j'avoue que j'arrive pas à comprendre ce que tu veux faire :huh:
Heu j'avoue que j'arrive pas à comprendre ce que tu veux faire :huh:
il vaut afficher un sprite, mais seulement en noir (meme si le sprite d'origine est en couleur) sans pour autan en creer un autre sprite tout noir.
sur gba en jouant sur les reg alpha c'est fesable assé facilement.
je connais pas oslib mais si y'a une fonction d'alpha ou de blend c'est simple a faire.
ps: apres relecture je me demande si j'ai été plus clair que lui :ph34r:
Merci nes :) Oui alors à la limite il suffit de le tinter en noir:
oslSetAlpha(OSL_FX_TINT, RGB(0, 0, 0));
Ou avec l'ancienne syntaxe:
oslSetAlpha(OSL_FX_ALPHA | OSL_FX_COLOR, RGB(0, 0, 0));
bonsoir,
Alors, merci a vous deux :
mon probleme est bien 'redefini' par Nesgba :
je veux créer la silhouette d'une image :
exemple, ce smiley : :ph34r: deviendrait un rond d'une seule couleur.
sa silhouette, une sorte d'ombre..
J'ai donc essayé la fonction que Brunni m'a proposé, mais ca ne marche que pour le noir, sinon le sprite est teinté et donc pas de couleur uniforme.
Bref peu importe, c'est le but recherché, donc MERCI ! :D
Alain
ben oui c'est encore moi :cry:
si je peux aller sur irc ou autre chose pour pas trop polluer hesitez pas hein ? :-*
Bon, comme vous vous en doutez peut etre, je fais des essais avec oslib :rolleyes:
la je tombe sur un truc bizarre, mon 1er reflexe c'est "regarde ton code, t'as mis un bug"..
Mais la je cale ..
Si j'ai une image, que je l'affiche, pas de probleme, mais si je change centerX ou centerY de cette image, j'ai l'impression que ça me change aussi le x et/ou y de cette image ?.. Sans le source impossible de verifier, donc s'il te plait Brunni, pourrais tu m'aider ? :-'
Autre chose, pas un probleme, mais une question :
typedef struct {
//public
int x, y; //Positions
int stretchX, stretchY; //Final size (stretched)
//Piece
float offsetX0, offsetY0, offsetX1, offsetY1;
//Rotation
int centerX, centerY; //Rotation center
pourquoi des float pour offsetX0, etc...?
merci, comme deb, pour toute aide.. :ange:
En esperant que je ne te casse pas (trop) les pieds Brunni..
Alain
si je peux aller sur irc ou autre chose pour pas trop polluer hesitez pas hein ? :-*
Pourquoi tout le temps cette crainte ?
Comment des questions peuvent elles poluer un forum concu pour ca ? :rolleyes:
Par contre t'es pas obligé de poser tes questions ici, y'a une section [DEV] Aide (http://www.playeradvance.org/forum/forumdisplay.php?f=54) ou tu peux créer autant de topics dont tu as envie ;)
Sinon pour ton problème, je pense que vu que tu déplace le centre et que les coordonnées restent inchangées, il est normal que l'image semble "bouger" en même temps...
Mais j'ai peut etre rien compris à rien :p
La version PC est sortie!
Pour l'instant c'est une bêta. Tout ne fonctionne pas encore, mais la grande majorité des programmes tournent sans problème.
Pour télécharger l'installeur: http://oslib.playeradvance.org/doku.php?id=downloads
http://oslib.palib.info/oth/scrshot_pc.png (télécharger la démo) (http://oslib.palib.info/Logo.zip)
Installation:
Requiert Microsoft Visual Studio 2005 (fonctionne peut-être aussi avec les versions 2002 & 2003) y compris l'express edition.
En installant le package, il vous sera demandé de préciser si vous avez le platform SDK (ce n'est pas le cas avec VS2005 express, mais avec toutes les autres oui).
L'installation terminée, vous pouvez créer un nouveau projet C/C++ vide (empty project) avec Visual Studio.
Ensuite, allez dans les proprietés du projet, configuration properties, C/C++, Preprocessor Definitions, et mettez: WIN32;NDEBUG;_WINDOWS (NDEBUG pour le mode release, _DEBUG pour le mode debug).
Dans "Linker", Input, mettez dans Additional Dependencies: advapi32.lib gdi32.lib user32.lib oslib.lib opengl32.lib glu32.lib libpng.lib libz.lib.
Dans "Linker", System, subsystem: Windows (/SUBSYSTEM:WINDOWS).
Refaites cela pour le mode Debug, avec pour seule différence Preprocessor definitions qui est à: WIN32;_DEBUG;_WINDOWS.
Problèmes connus:
- Le son n'est pas supporté
- Le color keying n'est pas supporté (oslSetTransparentColor), sauf lors du chargement des images
- Transparence: seuls OSL_FX_ALPHA (|OSL_FX_COLOR) & OSL_FX_ADD sont supportés avec les vieilles cartes graphiques
- Tourne très lentement, et certains éléments ne sont pas émulés correctement.
- Les timings n'ont rien à voir avec la PSP (dépendent de votre PC), rien ne permet de savoir si le jeu ramera sur une vraie PSP.
- L'accès aux données du drawbuffer (oslSetDrawBuffer) demande l'utilisation de oslLockImage & oslUnlockImage
----------------------------------
Configuration requise
Recommandé (pour une vitesse comparable à la PSP):
- CPU: Intel Pentium 4 avec HyperThreading, Pentium D, Pentium 4 @ 2.4 GHz, AMD Athlon X2, Athlon 64 3000+
- RAM: 768 Mo pour être à l'aise avec Visual Studio 2005, sinon 64 Mo sont suffisants
- ATI Radeon X600 (Radeon 9xxx insuffisantes) ou mieux
- nVidia GeForce FX 5200 ou mieux
- Intel Extreme Graphics (tous modèles, la première génération peut parfois être un peu lente)
Minimale (tourne, mais extrêmement lent):
- CPU compatible x86
- Carte graphique compatible OpenGL 1.0 avec 2 Mo de mémoire
- 64 Mo de RAM
Si vous avez d'autres questions ou des commentaires, n'hésitez pas ;)
Bobby Sixkilla
07/05/2006, 00h57
Et la version mac alors? :ange:
Franchement c'est génial ce que tu as fait là! :D Même plus besoin de psp!
Je trouve ça vraiment excellent. Ca fait une bonne boite à outil pour programmer sur PSP.
/me devrais penser à regarder de plus pres cette console maintenant.
yopyop
N64Francois
07/05/2006, 18h43
Merci Brunni, grâce à toi je vais pouvoir essayer de faire quelques petits projets sur PSP. :thumb_yel
Tembargo
07/05/2006, 18h45
ça me tente bien aussi maintenant arggg ! C'est du temps qui va me manquer.. ^^
Beau boulot Brunni !
Bodom-Child
07/05/2006, 20h11
Brunni, tu es tout simplement fantastique! :wub:
Si j'étais pas hétéro... :lol:
vu ton avatar, des fois on se demande ;) ^^
On en a dejà discuté mais je l'ecris là, ça fait toujours plaisir, je trouve ça excellent.
Et même si je prefererais coder sur la console direct, c'est vraiment un truc terrible que t'as pondu. Je parle même pas de OSLib de base sur la psp qui dechire tout.
Je vais plus pouvoir tenir tres longtemps, la carte bleu va chauffer.
Bonjour,
J'ai commencé à programmer sur Oslib hier et c'est fort sympathique ! :)
Cependant, j'aimerais savoir, y a-t-il un limite pour la taille des images ?
Parce que j'ai une image que je fais petit à petit pour les animations de mon perso, et dès que j'ai dépassé 414*512 (chaque frame fait 69*64, 6 frames par anim...), l'image ne s'affiche plus à l'écran.
Le poids de l'image est de 45ko.
Je trouve ça assez gènant car je n'en suis qu'à la moitié de l'ajout de mes anims ^^'
L'image en question (oui, c'est bien Gotenks en SSJ3 ^^) :
Image censurée
Merci d'avance.
PS : Je sais que ripper des sprites est illégal, mais je ne les utilsie qu'en attendant que le jeu soit bien avancé....Le projet n'est pas un jeu DBZ, même si certains trucs y ressemble, comme voler etc., pour ça que j'ai pris gotenks
Edit de Bobby : J'ai retiré la fameuse image. ^^
Edit de Smea : Ah, désolé, j'avais pensé au PS mais pas au fait que mettre l'image pouvait être problèmatique... v_v'
Edit de Smea 2 : Mais, j'y pense, le tuto de YodaJr utilise aussi des sprites et un BG rippé ! c'est pas bien ! :p
Oui c'est effectivement une limite (hardware): dès que ton image dépasse les 512 que ce soit en largeur ou en hauteur, elle ne peut plus être affichée :(
Tu peux toutefois utiliser plusieurs images si vraiment ton perso est énorme, mais il faut noter que passer souvent d'une image à l'autre réduit les performances (à cause du cache). C'est pas la mort hein, mais si tu dois par exemple afficher 1000 sprites à la suite, il faudrait faire en sorte qu'ils soient tous sur la même image ;)
Ce qui pourrait me faire économiser de la place, ce serait de changer la direction du personnage sur le hardware, j'aurais alors moins de problème je pense.
C'est possible avec OSlib de retourner une image comme ça ?
C'est possible avec OSlib de retourner une image comme ça ?
Faut lire les docs :p
oslMirrorImageH(img)
oslMirrorImageV(img)
Retourne l'image horizontalement (H) ou verticalement (V). Vous pouvez ensuite la dessiner avec oslDrawImage.
Note: Pour les utilisateurs expérimentés, l'image n'est pas réellement retournée, ce sont juste ses coordonnées internes qui sont modifiées, c'est donc très rapide.
T'as une PSP smealum ?
PS : c'est quoi cette histoire de rip illégal ?
Faut lire les docs :p
T'as une PSP smealum ?
PS : c'est quoi cette histoire de rip illégal ?
J'ai lu la doc dans la partie image, j'avais rien trouvé :(
En tout cas, grand merci à Brunni et toi, ça marche à merveille !!! :D
Et, oui j'ai une PSP.
Et pour le rip, je parle du perso de Chrono et du décors zelda.... Si tu les as pris dans un jeu sans autorisation de l'auteur, c'est illégal ;)
Moi, j'ai pris Gotenks dans DBZ : Hyper Dimension sur Snes...
Et pour le rip, je parle du perso de Chrono et du décors zelda.... Si tu les as pris dans un jeu sans autorisation de l'auteur, c'est illégal ;)
Merci de ne pas tout confondre ...
C'est une illustration du code, rien de plus.
Merci de pas troller dans cette partie du forum, je serais intransigeant là dessus.
Paranthèse close. (MP si commentaires à faire)
Cordialement
Kcv
Excuse KCV pour le HS limite troll, c'est ma faute, je spliterai plus tard si il le faut :-'
Car smealum, j'avais bien compris ta phrase, mais ma remarque s'adressais aussi à bobby vu qu'il semble avoir modéré.
J'ai toujours utilisé des rips et j'en utiliserai toujours (qu'ils soient gfx ou sfx) car j'aime ca :)
Ca peut etre illégal, mais c'est comme enregistrer les films à la TV, quand Nintendo me poursuivera en justice pour vol, j'arreterai surement ^^
Je suis le premier à feliciter les graphs et sons perso ( :wub: ) mais j'ai pas envie qu'on commence à interdire aux autres de s'amuser à dev sans se prendre la tête sur ca...
Sinon, smealum, content de te voir sur PSP, j'aime bien ce que tu fait ^^
Oui oui, je retourne à mes révisions ;p
Bobby Sixkilla
10/06/2006, 15h13
Merci de ne pas tout confondre ...
C'est une illustration du code, rien de plus.
Je dirai même qu'on peut faire jouer l'exception au droit d'auteur de courte citation, motivée par un soucis pédagogique... :whst: Bref, ce n'est pas illicite. :)
N64Francois
12/06/2006, 01h03
Dans mon nouveau projet PSP, j'aimerais pouvoir sauvegarder des scores (et ainsi pouvoir afficher un écran "Ranking")
Comment dois-je m'y prendre avec OSLib ?
En fait, la PSP dispose directement d'un système de fichiers, pas besoin de passer par la SRAM ou un driver FAT. Tu peux soit utiliser les fonctions liées au système d'exploitation (sceIo (http://psp.jim.sh/pspsdk-doc/group__FileIO.html)) - mais elles ne sont pas complètement implémentées dans l'ému - soit les fonctions standard C, du style:
FILE *f;
f = fopen("config.bin", "wb"); // w = write, binary
// Vérifie qu'il a pu être ouvert
if (f)
{
fwrite(&taConfig, sizeof(taConfig), 1, f);
fclose(f);
}
N64Francois
12/06/2006, 11h23
Merci pour ta réponse Brunni, je vais essayer d'utiliser les fonctions standard du C
Mise à jour!!!
*Devrait* fixer les problèmes suivants:
Conditionnel: Support firmware 2.01+
Plus de plantages aléatoires
Support C++
Il y a aussi des fonctions non documentées, attendez la version définitive pour qu'elles le soient ;)
Je n'ai toujours pas ajouté la source, je le ferai pour la release définitive. Télécharger (http://oslib.palib.info/OSLib.zip).
Merci sieur Brunni.
Kiss pour le support C++
Cordialement,
Kcv
Bien joué :)
Elle résoud le bug qui fait planter la console en sortie avec les 2.5+ ?
N64Francois
25/06/2006, 23h17
Je viens de faire une petite compilation de Wario Mastermind avec cette nouvelle version :
- Il me semble que le fichier EBOOT.PBP fait 50 ko de moins qu'avant :rolleyes:
- Par contre, ça plante toujours quand on quitte le jeu (sur ma PSP 2.5) :cry:
Peut-être ai-je mal installé cette mise à jour...
Qu'appelles-tu "Support firmware 2.01+" ?
J'ai mis à jour mon SDK, qqn avait essayé (mais avec le SDK de février) et m'a reporté que ça fonctionnait sans problème (même 10 fois de suite). Là j'ai mis la dernière version alors j'ai pensé que c'était ok, malheureusement non :(
Je regarderai avec ce gars là, peut-être qu'il utilise des options spéciales pour que ça marche ^^
N64Francois
27/06/2006, 01h03
Je vais essayer de faire de nouveaux essais ce week end au cas où
Ton gars a quelle version de la PSP ? Il utilise quelle version de l'eboot GTA ?
Il a downgradé :(
(il utilisait la 2.0 j'imagine)
Salut,
Voila, je trouve cela excellent, et franchement good job Brunni :)
J'ai suivi le tutorial de Yodajr, que je remercie grandement au passage :) , et je voudrais savoir les specifications pour les images PNG.
Car en fait, je vois que dans les exemples donné, y'a deux type, avec couleur Magenta pour la transparence et un png avec un calque pour l'image sans couleur de transparence.
Donc dans les deux cas, est ce la meme chose pour la gestion de transparence des sprites ? et faut 'il etre en mode 8 bits ou 16 bits pour les sprites ?
Ensuite pour la position du sprite a l'ecran, prend t'il exactement le bord au gauche du sprite pour le X et Y ou prend t'il son centre ?
merci d'avance pour toute reponse qui pourrait m'eclairer ;)
Donc dans les deux cas, est ce la meme chose pour la gestion de transparence des sprites ? et faut 'il etre en mode 8 bits ou 16 bits pour les sprites ?
Qu'entend tu par "la gestion de transparence" ?
Si tu parles du fait de rendre ton sprite entier transparent, c'est pareil.
Si il s'agit de l'affichage de ton sprite et de ses parties transparentes, non ce n'est pas pareil, c'est kif-kif ^^
Sur les samples, je n'ai en effet pas utilisé de couleur de transparence pour mes images et sprites mais carrément mis la transparence dans le png lui même. Il suffit alors de charger l'image et de l'afficher :
OSL_IMAGE *image
image = oslLoadImageFile("image.png", OSL_IN_RAM, OSL_PF_5551);
oslDrawImage(image);
Mais comme je connait très mal ce genre de manip sous toshop & co, je préfère la solution de mes tutos, ou mes images ont une couleur de transparence précise, couleur qu'oslib se charge lui même de rendre transparente :
OSL_IMAGE *image
oslSetTransparentColor(RGB(255,0,255));
image = oslLoadImageFile("image.png", OSL_IN_RAM, OSL_PF_5551);
oslDisableTransparentColor();
oslDrawImage(image);
Mais à l'affichage, c'est pareil ;)
Ensuite pour la position du sprite a l'ecran, prend t'il exactement le bord au gauche du sprite pour le X et Y ou prend t'il son centre ?
C'est toi qui décide, par défaut c'est le bord haut gauche, mais tu peux modifier le centre de tes images avec image- >centerX et image- >centerY.
Pour définir les coordonnées de l'image par son centre par exemple, tu fait ca :
image->centerX = image->sizeX / 2;
image->centerY = image->sizeY / 2;
merci bien pour ces precisions :)
donc j'ai deux choix pour la couleur de transparence :
1 - Couleur magenta a l'aide de oslSetTransparentColor(RGB(255,0,255));
2 - Calque pour le PNG.
Viens de tester le second choix et ca marche nickel chrome :)
Par contre, chose qui est un peu flou, c'est la fonction oslDrawImage(nom du sprite); , si l'on utilise d'autre fonctions pour le decoupage des sprites dans une planche de sprite, on est toujours obligé de l'utiliser ?
Car c'est normalement pour afficher le sprite, donc on le met quand on veut ?
On le met quand on veut afficher l'image :)
par contre, j'ai vu que l'on pouvait compilé pour pc , se qui permet de ne pas toujours tester avec la psp, mais j'ai Visual C++ 2005 Express telechargé a partir de ton tutorial 1 sur la psp avec OSLIB, et je vois pas comment faire pour la compilation sur PC, car je trouve pas les infos a modifier pour le processeur, etc .. decrit dans l'aide d'installation de la lib oslib pc.
As tu essayé de l'installé et as tu reussis a le faire fonctionner ?
(ps: désolé pour toute ces question chiante :D )
Oui bien sur, l'installeur dispo ici : http://www.playeradvance.org/forum/showpost.php?p=48470&postcount=99
a été concu pour la version express de VSc++ :)
justement, c'est ca que je comprend pas
# Ensuite, allez dans les proprietés du projet, configuration properties, C/C++, Preprocessor Definitions, et mettez: WIN32;NDEBUG;_WINDOWS (NDEBUG pour le mode release, _DEBUG pour le mode debug).
# Dans "Linker", Input, mettez dans Additional Dependencies: advapi32.lib gdi32.lib user32.lib oslib.lib opengl32.lib glu32.lib libpng.lib libz.lib.
# Dans "Linker", System, subsystem: Windows (/SUBSYSTEM:WINDOWS).
configuration properties, C/C++, je vois pas cela dans VC++ 2005 Express, d'ou mon incomprehesion
L'installation terminée, vous pouvez créer un nouveau projet C/C++ vide (empty project) avec Visual Studio.
Tu l'a fait ca ?
Pas Makefile project hein, Empty project...
Une fois le projet créé, il faut tout de même créer (ou importer) un fichier .c afin que l'onglet C/C++ apparaisse.
oui, ca je l'ai fait, et apres faut modifier le projet, mais je ne trouve pas les parametres a changer
oki, bon ben j'ai reussis a trouver, lol, pas doué pour ca :D
par contre, a la compilation, j'obtient ce message d'erreur la :
c:\program files\microsoft visual studio 8\vc\include\oslib\emu.h(7) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
Quelqu'un aurait une idée ?
[edit 1:]voila, reparé :)
en fait, j'ai installé aussi le sdk mais apres, et y'avait aucun lien entre VC++ 2005 Express et le SDK :(
Donc j'ai recollé le repertoire bin , include et lib dans celui de VC++ 2005 Express et ca fonctionne nickel maintenant :)
[edit 2:]Voila, apres moulte probleme, enfin reussis a faire quelque chose :)
Je donne le petit exemple format PC : petit test version PC (http://state.free.fr/test_oslib_pc.zip)
J'obtient la meme chose sur PSP , formidable la lib oslib version opengl pour pc, maintenant, vais pouvoir tester directement sur pc avant de tester sur la psp, ca sera plus rapide pour faire les mises a jour :D
Encore merci Yodajr pour ton aide et Brunni pour ca formidable lib :wub:
Bonjour à tous!
est il possible de passer en 320x240 sur psp avec oslib ?
J'ai bien vu la fonction oslInitGfx, mais je ne vois pas de parametre qui corresponde ..?
Ou alors, si ce n'est pas possible via oslib, est ce que je peux passer en 320x240 via le systeme, et continuer avec oslib ?
Mon but est d'adapter un jeu originellement en 320x240
Merci pour votre aide,
Alain
Oui c'est possible, en zoomant ce qui est affiché à chaque frame.
Brunni m'a déja expliqué à mainte reprise, mais je n'ai jamais encore essayé :p
Essaye de voir avec lui.
Compozitor
13/02/2007, 19h54
Hi all! I got a problem with compiling on PC...
I have done all preparations, then import my main.c into project. And compile... i got this error.... Code works on psp.
Using Visual Studio C++ 2005 Express
------ Build started: Project: Project1, Configuration: Release Win32 ------
Compiling...
cl : Command line error D8003 : missing source filename
Please help.
I can't read in mind (yet ?), so I can't help you if you don't give me more informations... post all the logs, screens captures, tell me about what have you exactly did, ...
Compozitor
14/02/2007, 22h14
Ok! I downloaded Visual Studio C++, installed it. Then downloaded OSL PC version and installed it(Install for Express version).
Then i created new empty project, and did that:
# Ensuite, allez dans les proprietés du projet, configuration properties, C/C++, Preprocessor Definitions, et mettez: WIN32;NDEBUG;_WINDOWS (NDEBUG pour le mode release, _DEBUG pour le mode debug).
# Dans "Linker", Input, mettez dans Additional Dependencies: advapi32.lib gdi32.lib user32.lib oslib.lib opengl32.lib glu32.lib libpng.lib libz.lib.
# Dans "Linker", System, subsystem: Windows (/SUBSYSTEM:WINDOWS).
Then i moved all my project files in the C++Project folder that i just created, and imported main.c in the project.
Then i clicked Build.
And i get this error:
------ Build started: Project: Project1, Configuration: Release Win32 ------
Compiling...
cl : Command line error D8003 : missing source filename
Build log was saved at "file://c:\Documents and Settings\Compozitor\My Documents\Visual Studio 2005\Projects\Project1\Project1\Release\BuildLog.h tm"
Project1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I don't know... it's like VS call a file which doesn't exist... you have only a main.c ? if you have more, you have to import each of them in the project too...
Compozitor
15/02/2007, 12h43
THx! It was my error... I writed "WIN32;NDEBUG;_WINDOWS in the options..
Now it starts to compile.. But now i have many errors..
------ Build started: Project: Project1, Configuration: Release Win32 ------
Compiling...
main.c
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(15) : error C2144: syntax error : '__int64' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(34) : error C4980: '__value' : use of this keyword requires /clr:oldSyntax command line option
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(34) : error C2059: syntax error : '__value'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/reent.h(603) : error C2144: syntax error : 'unsigned __int64' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/reent.h(603) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(35) : warning C4392: 'double atan(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(36) : warning C4392: 'double cos(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(37) : warning C4392: 'double sin(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(38) : warning C4392: 'double tan(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(39) : warning C4392: 'double tanh(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(43) : warning C4392: 'double fabs(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(44) : warning C4392: 'double floor(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(51) : warning C4392: 'double acos(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(52) : warning C4392: 'double asin(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(53) : warning C4392: 'double atan2(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(54) : warning C4392: 'double cosh(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(55) : warning C4392: 'double sinh(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(56) : warning C4392: 'double exp(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(58) : warning C4392: 'double log(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(59) : warning C4392: 'double log10(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(60) : warning C4392: 'double pow(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(61) : warning C4392: 'double sqrt(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(62) : warning C4392: 'double fmod(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(23) : warning C4392: 'int memcmp(void)' : incorrect number of arguments for intrinsic function, expected '3' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(24) : warning C4392: 'char *memcpy(void)' : incorrect number of arguments for intrinsic function, expected '3' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(26) : warning C4392: 'char *memset(void)' : incorrect number of arguments for intrinsic function, expected '3' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(27) : warning C4392: 'char *strcat(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(29) : warning C4392: 'int strcmp(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(31) : warning C4392: 'char *strcpy(void)' : incorrect number of arguments for intrinsic function, expected '2' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(34) : warning C4392: 'size_t strlen(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\guiddef.h(161) : error C2660: 'memcmp' : function does not take 3 arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(58) : warning C4392: 'int abs(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(59) : error C2733: second C linkage of overloaded function 'atexit' not allowed
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(59) : see declaration of 'atexit'
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(84) : warning C4392: 'long labs(void)' : incorrect number of arguments for intrinsic function, expected '1' arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\propidl.h(1404) : error C2660: 'memset' : function does not take 3 arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\stralign.h(101) : error C3861: 'wcscpy': identifier not found
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/types.h(95) : error C2371: 'time_t' : redefinition; different basic types
C:\Program Files\Microsoft Visual Studio 8\VC\include\crtdefs.h(530) : see declaration of 'time_t'
C:\Program Files\Microsoft Visual Studio 8\VC\include\oslib/oslib.h(36) : error C2733: second C linkage of overloaded function 'memalign' not allowed
C:\Program Files\Microsoft Visual Studio 8\VC\include\oslib/oslib.h(36) : see declaration of 'memalign'
.\main.c(42) : error C2143: syntax error : missing ')' before '{'
.\main.c(42) : error C2059: syntax error : ')'
.\main.c(42) : error C2143: syntax error : missing ';' before '{'
.\main.c(42) : error C2660: 'sprintf' : function does not take 5 arguments
.\main.c(42) : error C2059: syntax error : ')'
.\main.c(49) : error C2660: 'sprintf' : function does not take 2 arguments
.\main.c(111) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(112) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(113) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(114) : error C2660: 'sprintf' : function does not take 3 arguments
Build log was saved at "file://c:\Documents and Settings\Compozitor\My Documents\Visual Studio 2005\Projects\Project1\Project1\Release\BuildLog.h tm"
Project1 - 22 error(s), 27 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Compozitor
16/02/2007, 21h34
Please help me..... I very need PC version to be able test my program fast.
It seems that now i need to include some headers.... but i don't know which ones...
I saw your post yesterday but I am still not able to help you...
Did you enable enable "Use managed extensions" in your project options?
Compozitor
17/02/2007, 21h53
No. I don't know how to do this. I enabled /crl ("Common Language Runtime Support") - this is it?? Oh and i enabled "Minimize CRT Use in ATL".
When i enabled /crl i get another log for compile, more short. Here he is:
------ Build started: Project: Project1, Configuration: Release Win32 ------
Compiling...
main.c
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(15) : error C2144: syntax error : '__int64' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(34) : error C4980: '__value' : use of this keyword requires /clr:oldSyntax command line option
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/_types.h(34) : error C2059: syntax error : '__value'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/reent.h(603) : error C2144: syntax error : 'unsigned __int64' should be preceded by ';'
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/reent.h(603) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\include\guiddef.h(161) : error C2660: 'memcmp' : function does not take 3 arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(59) : error C2733: second C linkage of overloaded function 'atexit' not allowed
C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(59) : see declaration of 'atexit'
C:\Program Files\Microsoft Visual Studio 8\VC\include\propidl.h(1404) : error C2660: 'memset' : function does not take 3 arguments
C:\Program Files\Microsoft Visual Studio 8\VC\include\stralign.h(101) : error C3861: 'wcscpy': identifier not found
C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/types.h(95) : error C2371: 'time_t' : redefinition; different basic types
C:\Program Files\Microsoft Visual Studio 8\VC\include\crtdefs.h(530) : see declaration of 'time_t'
C:\Program Files\Microsoft Visual Studio 8\VC\include\oslib/oslib.h(36) : error C2733: second C linkage of overloaded function 'memalign' not allowed
C:\Program Files\Microsoft Visual Studio 8\VC\include\oslib/oslib.h(36) : see declaration of 'memalign'
.\main.c(42) : error C2143: syntax error : missing ')' before '{'
.\main.c(42) : error C2059: syntax error : ')'
.\main.c(42) : error C2143: syntax error : missing ';' before '{'
.\main.c(42) : error C2660: 'sprintf' : function does not take 5 arguments
.\main.c(42) : error C2059: syntax error : ')'
.\main.c(49) : error C2660: 'sprintf' : function does not take 2 arguments
.\main.c(111) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(112) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(113) : error C2660: 'sprintf' : function does not take 3 arguments
.\main.c(114) : error C2660: 'sprintf' : function does not take 3 arguments
Build log was saved at "file://c:\Documents and Settings\Compozitor\My Documents\Visual Studio 2005\Projects\Project1\Project1\Release\BuildLog.h tm"
Project1 - 22 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Compozitor
20/02/2007, 00h29
Hm. I installed normal version of Visual Studio C++ 2005 and all seems to work fine. Looks like there is problem about Express version, or files in OSlib_PC install. Thx! Only problem was "oslAssert(mtick);" but when i deleted it all worked fine!
Professeur_Xavier
18/03/2007, 11h46
Bonjour à tous,
Tout d'abord, félicitation à Brunni pour le travail effectué. Ta lib me paraît très prometteuse. Je viens de me procurer une psp et j'ai commencé à développer avec OsLib et c'est parfait.
J'aimerais savoir si Oslib est opensource et si oui, ou on peut se procurer les sources. En effet, j'utilise Dev-C++ et visiblement oslib.lib pour la version pc est compilé pour Visual C++ (j'obtiens des "linker error" sous Dev-C++). Remarquez, je n'ai pas forcément besoin des sources, il existe peut-être une version de la lib compilée pour gcc, mais je ne l'ai pas trouvée.
D'autre part, je me demandais s'il était possible d'utiliser OSlib et Opengl en même temps sur la PSP comme c'est le cas avec SDL et opengl.
Merci d'avance
Salut et merci :)
On peut trouver les sources ici:
http://oslib.palib.info/OSLib_PC_src.7z
Mais ça risque d'être difficile de recompiler ça pour dev-c++, je crois que d'autres ont déjà essayé, le mieux serait de tout recommencer :p
Professeur_Xavier
22/03/2007, 16h12
Ok, merci pour le lien :)
Je vais regarder ça. Si c'est pas possible, tant pis. De toute façon, j'ai la psp pas loin :)
Dr.Vince
22/10/2007, 19h36
http://pspupdates.qj.net/JGE-v1-0-hardware-accelerated-2D-game-SDK-for-the-PSP/pg/49/aid/105649
un concurrent à oslib ???
daaa57150
23/10/2007, 13h40
http://pspupdates.qj.net/JGE-v1-0-hardware-accelerated-2D-game-SDK-for-the-PSP/pg/49/aid/105649
un concurrent à oslib ???
Ca m'a l'air impressionnant en effet.
Hardware MP3 decoding on PSP.
Si c'est vraiment ce que j'ai l'impression, c'est à dire du mp3 décodé en hard, ie sans utiliser le processeur, ça m'intéresse à fond... d'ailleurs même si ca utilise le proc ca reste intéressant pour l'oslib je pense.
Brunni tu peux pas intégrer ça à l'oslib? J'ai téléchargé la librairie le source est fourni et il est sous license BSD. Il y a aussi du wav en stereo ca peut également être intéressant (pour moi en tout cas)...
C'est déjà implémenté dans l'OSLib. Faut juste que je release la prochaine version un jour :o
Je crois que j'avais aussi implémenté un autre format mais je sais plus lequel.
[Edit] L'atrac3, et ça demande moins de ressources parce que c'est câblé. Alors que le MP3 est décodé via le Media Engine.
daaa57150
23/10/2007, 14h04
C'est déjà implémenté dans l'OSLib. Faut juste que je release la prochaine version un jour :o
Je crois que j'avais aussi implémenté un autre format mais je sais plus lequel.
[Edit] L'atrac3, et ça demande moins de ressources parce que c'est câblé. Alors que le MP3 est décodé via le Media Engine.
Mais c'est génial! A quand la release??
Voilà enfin la version 2.10 (http://brunni.dev-fr.org/dl/psp/OSLib_210.rar). Cette version est principalement une amélioration de la 2.0x (plus stable), mais elle apporte aussi quelques nouveautés, ainsi que des fonctionnalités aidant à une cohérence globale un peu meilleure. Voici un sommaire (voir le zip pour plus d'infos sur les nouveautés).
- Support des fichiers audio ATRAC3(+) et des MP3. Attention: il faut utiliser le mode kernel, et pour les mp3 il faut qu'ils soient non tagués et en 44 kHz.
- Les images sont swizzlées automatiquement au chargement.
- Possibilité d'utiliser le stick analogique de la même façon que la croix.
- Possibilité d'utiliser oslSet/GetImagePixel sur les images swizzlées.
- Le splash screen OSLib n'a plus besoin de fichiers additionnels, celui de neoflash toujours (permet d'adapter à chaque année :p)
A propos du swizzlage automatique d'image: c'est bien parce que ça permet d'avoir des performances meilleures, mais c'est un souci pour ceux qui accédaient directement aux images, ce n'est plus possible à présent. Il faut spécifier que l'image est déswizzlée en ajoutant OSL_UNSWIZZLED à OSL_IN_RAM par exemple. Vous pouvez aussi revenir à l'ancien comportement en appelant oslSetImageAutoSwizzle(0) au tout début (avant de charger quoi que ce soit). Enfin, si la vitesse n'est pas critique, vous pouvez utiliser oslSetImagePixel et oslGetImagePixel. Vous êtes ainsi assuré que le code fonctionne dans tous les cas.
J'ai aussi fait un exemple de jeu. Il utilise le mp3, donc ça vous permet de voir comment initialiser OSLib en mode kernel et créer un thread en user mode pour le jeu. Ce jeu peut aussi être un bon didacticiel sur l'animation et le mouvement des personnages de jeu, sur le principe de la boucle principale, la gestion d'événements et ainsi de suite. Il est commenté en français.
http://oslib.palib.info/samples/img/screenshot_superpatrick2.png
Téléchargement: http://oslib.palib.info/samples/download/Super_Patrick_II.rar
Voilà, n'hésitez pas, dites-moi ce que vous pensez de cette nouvelle version, ce qu'il vous manque, ce que vous voudriez voir amélioré, etc. ;)
archilolo
01/12/2007, 16h47
Ahhhhh ! :bave: Bien pour le MP3 (même si ça risque de prendre de la place...)
Je peux poser une question con ? C'est quoi le "swizzlage" d'image ? :ninja:
Dr.Vince
01/12/2007, 17h33
même question qu'Archilolo
sinon génial pour le support du MP3
vivement que je trouve du temps pour m'y mettre
archilolo
01/12/2007, 17h48
même question qu'Archilolo
sinon génial pour le support du MP3
vivement que je trouve du temps pour m'y mettre
Et un bon graphiste aussi ! :p
Swizzler les images, c'est réorganiser les pixels pour que le GPU puisse y accéder linéairement. Sauf que du coup autant c'est facile pour le GPU de les lire, autant pour les humains... c'est pas trop ça ;) Donc plus possible d'accéder facilement à une image une fois qu'elle est swizzlée parce que les pixels sont disposés différemment.
La différence de vitesse entre dessiner une image swizzlée ou non est très grande, spécialement pour les images en RAM. Donc en fait maintenant par défaut je swizzle toujours lorsqu'on les charge depuis un PNG par exemple, parce qu'en général on ne les modifie pas ensuite ^^ Si vous voulez vraiment accéder à une image ou l'utiliser comme drawbuffer, il faut écrire OSL_IN_VRAM | OSL_UNSWIZZLED par exemple ^^
archilolo> Je veux le voir ton jeu :w00t: T'aurais pas du poster sur ce topic, maintenant t'as plus d'excuse :p et en plus tu pourras mettre les voix digitisées en mp3 :bave:
tiwaz> Merci pour la news :)
Merci Brunni! En plus maintenant j'ai plus d'escuse pour coder sur PSP :)
Ass-Itch
01/12/2007, 19h03
vivement que je trouve du temps pour m'y mettre
Mais c'est clair :whst::hum::wub:
archilolo
01/12/2007, 19h13
archilolo> Je veux le voir ton jeu :w00t: T'aurais pas du poster sur ce topic, maintenant t'as plus d'excuse :p et en plus tu pourras mettre les voix digitisées en mp3 :bave:
Tu le verras en temps et en heure, dès que Ruth (:wub:) aura accepté mon deal, à savoir se travestir dans un VRAI mauvais jeu (pas comme ce semblant de sous-homebrew d'archipong, qui avait la prétention d'être bon).
Sinon, c'est une vraie bonne nouvelle, ta nouvelle version d'OSlib, Brunni :wub: Seul problème : les MP3, c'est lourd :hmm:
Tu le verras en temps et en heure, dès que Ruth (:wub:) aura accepté mon deal, à savoir se travestir dans un VRAI mauvais jeu (pas comme ce semblant de sous-homebrew d'archipong, qui avait la prétention d'être bon).
Qu’ouïe-je ? De quel deal parles-tu ? :hmm:
Je doute fort que même la plus charismatique et charmante des héroïnes soit suffisante pour nous faire oublier cette horreur qu'est "Archipong" :berk:
Je comprends pas pourquoi tu dis ça :huh: (c'est moins lourd que le wav ou le bgm, après si tu veux du léger, utilise des mod)
[Edit] cross
Owi ! Trop cool.
Merci Brunni.
Ha enfin t'as trouvé le temps, merci :D
On peut utiliser les Get et Set Pixel directement avec une image swizzlée ? on en avait discuté la dernière fois et je ne comprend pas bien ta phrase là :-'
archilolo
01/12/2007, 23h36
Je comprends pas pourquoi tu dis ça :huh: (c'est moins lourd que le wav ou le bgm, après si tu veux du léger, utilise des mod)
[Edit] cross
Tu parles bien de ce que je dis sur la "lourdeur" des MP3 ?
Ben c'est simple. Pour faire les musiques, je me mets devant mon piano numérique, je joue, j'enregistre avec un logiciel (garageband sur mac) ; et paf (le chien) ! ça me sort un MP3 avec ce que j'ai joué (ce que j'ai utilisé pour archipong ; sauf que j'avais en plus reconverti en .mod).
Problème : comme je suis gourmand, j'aimerai bien mettre plein de musiques à môa ; mais bon, ça va rapidement prendre de la place... :hmm:
A moins que (léger HS, désolé), il y ait un moyen de sortir ce que je joue sur garageband en midi... et là, ça faciliterait (allégerait) les choses (j'aime bien Garageband, moins pour les loop que le fait je peux aisément gérer les "effets" de ce que je joue). :hmm: En fait, il suffirait d'un bon séquenceur pas cher et complet... :ninja:
-> Ruth : le but n'est justement pas de faire oublier archipong, mais de l'en parachever l'horreur en portant à son faît la moins charismatique et la moins charmante des héroînes : ta petite personne. :wub:
Bobby Sixkilla
02/12/2007, 18h22
Tu joues sur un piano numérique et tu veux te prendre la tête à faire des mp3? Fais des mod direct. ;)
archilolo
02/12/2007, 19h03
Comment ?
(cette question comporte un noob ; sauras-tu passer outre ?)
Bobby Sixkilla
02/12/2007, 19h04
Genre avec un mod tracker... :rolleyes:
daaa57150
02/12/2007, 20h19
Attention: il faut utiliser le mode kernel, et pour les mp3 il faut qu'ils soient non tagués et en 44 kHz.
Est ce que ca veut dire que si on utilise du mp3 ca ne fonctionnera pas sur la slim&lite? ou bien me trompe-je?
Voilà, n'hésitez pas, dites-moi ce que vous pensez de cette nouvelle version, ce qu'il vous manque, ce que vous voudriez voir amélioré, etc.
Je teste dès demain, et pour ce qu'il manque, il y a un mode alpha qui serait peut-être pas mal je l'expliquait sur un autre thread:
Il s'agit d'un effet de coloration des images dessinées, qui me semble assez naturel, qui "ajoute" une couleur aux pixels qu'on dessine.
Je m'explique:
Disons qu'on teinte avec la couleur RGBA(Tr, Tg, Tb, Ta). Quand on va dessiner le pixel de couleur RGBA(Pr, Pg, Pb, Pa) on va en réalité dessiner un pixel de la couleur suivante:
RGB(min(255, Tr+Pr), min(255, Tg+Pg), min(255, Tb+Pb), min(255, Ta+Pa)).
Ca aura un effet de teinte plutôt naturel par exemple:
noir (0,0,0) + bleu (0,0,255) = bleu (0,0,255)
blanc (255,255,255) + bleu (0,0,255) = blanc (255,255,255)
rouge (255,0,0) + bleu (0,0,255) = fuchsia (255,0,255)
par contre moins naturel (quoique...): jaune (255,255,0) + bleu (0,0,255) = blanc (255,255,255)
Ca permettrait donc de colorer des images sombres, ainsi que de les éclaircir (suffit d'ajouter du gris).
Et tant qu'on y est, ca serait cool aussi d'avoir a disposition un effet de négatif, ainsi que de désaturation, ca doit être assez facile à intégrer je suppose (mais j'en sais rien en fait :)).
J'espère que les quelques problèmes que j'avais seront résolus au passage (fonction screenshot si je me rappelle bien, bouton home, et ce bug pour lire 2 sons en alterné ici (http://www.playeradvance.org/forum/showthread.php?t=15069)).
En attendant je te dis déjà merci, content de voir que tu y passes encore du temps!
Edit:
a priori il y a une erreur dans le fichier install_cygwin.bat, la ligne :
copy lib/libmikmod.a %PSPSDKDIR%\lib
devrait être :
copy libmikmod.a %PSPSDKDIR%\lib
Edit2:
après avoir testé la nouvelle version:
- pb screenshot: ca venait surement de moi j'ai testé avec l'ancienne version ca marchait, et ca marche toujours
- bouton home: ca ne s'éteint toujours pas, et reste bloqué à "Merci de patienter...". ca a peut-être qqch à voir avec le thread du son car la musique reste mais ca fait la même chose qd je passe à un endroit du code sans musique (après avoir lu une musique précédamment cela dit).
- problème de sons alterné toujours présent (un beau freeze).
- nouveau problème: mon code qui créait des images dynamiques à partir d'une autre image ne fonctionne plus (oslSetDrawBuffer) et le rendu à l'écran est devenu tout pourri, je crée un sujet pour voir ce qu'il se passe (SUJET (http://www.playeradvance.org/forum/showthread.php?p=160609#post160609)).
Est ce que ca veut dire que si on utilise du mp3 ca ne fonctionnera pas sur la slim&lite? ou bien me trompe-je?
Je ne sais pas si tu as tort ou raison, mais dés que j'insert du code pour lire un mp3, j'ai automatiquement un "Démarrage jeu impossible" sur ma Slim, malheureusement... :|
Edit:
a priori il y a une erreur dans le fichier install_cygwin.bat, la ligne :
copy lib/libmikmod.a %PSPSDKDIR%\lib
devrait être :
copy libmikmod.a %PSPSDKDIR%\lib
Exacte, j'ai vu ça aussi.
- bouton home: ca ne s'éteint toujours pas, et reste bloqué à "Merci de patienter...". ca a peut-être qqch à voir avec le thread du son car la musique reste mais ca fait la même chose qd je passe à un endroit du code sans musique (après avoir lu une musique précédamment cela dit).
Au contraire, tous les petits problemes de callback sont passés chez moi, plus de freeze pour la mise en veille, et pour quitter le jeu :)
Autrement, merci Brunni, c'est encore du "gros bon boulot", et chaque nouvelle realese font de nouveau plaisir.
Ps : Bonne Année 2008 :)
Dès que t'insères du code pour lire le mp3? C'est dès que tu fais quoi exactement au juste?
Est-ce lorsque tu passes le module en mode KERNEL? (0x1000)
Oui exactement... "Démarrage du jeu impossible 80020148". Et j'ai le meme probleme avec le Sample Super Patrick :/. Il y a t-il une solution ?
Je ne peux pas te dire, mais le problème ne vient pas spécialement d'OSLib mais du mode kernel avec la PSP Lite alors. J'avais entendu des trucs à ce sujet (il faut convertir les EBOOT ou je sais plus trop quoi).
Il faut peut être modifier le makefile ou patcher l'EBOOT. Je sais pas et là j'ai malheureusement pas trop le temps de regarder :( Si jamais tu trouves plus d'infos fais-moi signe ;)
J'ai recherché sur Ps2dev et, bien que beaucoup en parlent, aucune réponse trouvée (même si il est possible que mon niveau d'anglais m'ait fait louper certaines choses). Autrement je crois que la solution sera dans le 3.80 M33 :
Source (http://www.pspgen.com/modules.php?name=News&file=article&sid=5702&mode=&order=0&thold=0)
(Je ne sais pas si les liens vers ce site sont permis ici, mais aucune autre source est disponible..)
daaa57150
11/02/2009, 16h19
Est ce que j'ai fait une connerie, ou alors utiliser oslMirrorImageH sur une image dont on a changé le centre de rotation avec oslImageSetRotCenter plante à l'affichage?
Si j'enlève le centrage mes images s'affichent, si je le remet ca plante dans oslDrawImage.
C'est un bug?
Edit: au fait j'utilise oslibmod de sakya mais je pense pas qu'il a touché à ca.
vBulletin® v.3.7.2, Copyright ©2000-2010, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org