1

Désolé de vous posez tout pleins de questions ! sad Mais bon je débute...
Je viens de commencer un jeu du style AIv1.5 et j'utilise un frame buffer comme on m'a expliqué hier sur le forum :

au début du prog on créer le buffer:

void *buffer = calloc(3840, sizeof(char)); //

puis dans le jeu:

memcpy(LCD_MEM,buffer, 3840); // pour afficher la frame
memset(buffer, 0, 3840); // efface la buffer



C'est bon comme truc (ça marche déjà smile ) ?

Et puis c'est possible d'écrire avec printf_xy() par exemple dans le buffer ?
Si oui on fait comment ?
www.wikio.fr/user1921&info=comments

2

-

3

humm, attention pour printf_xy(), je ne suis pas sur que la sortie soit le buffer de notre choix. wink ça peut être comme printf() et là la sortie est LCD_MEM ! wink

enfin faut vérifier, peut-être que printf() et printf_xy() n'ont pas une sortie imposée.

Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

4

printf et printf_xy peuvent tous les 2 être redirigés avec PortSet, vu qu'ils utilisent les fonctions de AMS pour l'affichage.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

Merci à toi c'est vraiment sympa ! smile
Là j'utilise FastDrawLine() pour tarcer le lignes. Avec Portset on n'est plus obligé de les tracer dans le buffer ? Non ?
Dernier truc:
Pour effacer le buffer "memset(buffer, 0, 3840);" est la meilleure façon ? Ou on peux faire plus simple.
www.wikio.fr/user1921&info=comments

6

Raphaël
a écrit : Là j'utilise FastDrawLine() pour tarcer le lignes. Avec Portset on n'est plus obligé de les tracer dans le buffer ? Non ?

Si. ExtGraph utilise le paramètre buffer au lieu de PortSet pour le choix du buffer.
Dernier truc: Pour effacer le buffer "memset(buffer, 0, 3840);" est la meilleure façon ? Ou on peux faire plus simple.

Non, c'est le plus simple.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

C'est pas vrai gni avec cette fonction on passe trois arguments. Il existe une fonction où il ne faut en passer qu'un seul. En plus elle est plus rapide que memset.

Au fait Raphaël, n'oublie pas de désallouer (je suis pas sûr de l'existence du terme grin) ton buffer avec free !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

-

9

il me semble te l'avoir montrée il y a quelques jours, la fonction GX_ClrScr roll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

10

Désolé Thibaut, j'ai pas tout compris sad

Au fait Raphaël, n'oublie pas de désallouer (je suis pas sûr de l'existence du terme ) ton buffer avec free !

Et puis c quoi la fonction GX_ClrScr ?

Au fait vous utilisez les sprites d'extrgraph ? J'ai utilisez cette fonction pour mon jeu et elle est vraiment ultra rapide ! smile
www.wikio.fr/user1921&info=comments

11

Pour les test d'algo >> sprite TIGCC

Pour les beta des jeux >> sprite de Xlib !!!! winktop
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

12

Pour le moteur de mon jeu (donc, la partie où il y a besoin de rapidité) : Xlib.
pour le reste (où il y a pas besoin de rapidité) : Xlib ou Extgraph, selon les cas (question de facilité d'utilisation, en général, selon le contexte)


algo ? c quoi ça ?
(arf grin)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

13

Pour les test d'algo >> sprite TIGCC
Pour les beta des jeux >> sprite de Xlib !!!!

Moi j'ai testé l'algo pour afficher les sprites directement avec la fonction d'extrgraph.
Les fonctions d'Xlib sont plus rapide que celle d'extgrap ?

Pour le moteur de mon jeu (donc, la partie où il y a besoin de rapidité) : Xlib.
Avec les sprites d'extrgraph, le jeu tourne déjà à au moins 250 Fps !eek Biensûr quand j'affiche le taux de frames dans le jeu ça descend à 130 sur VTI.
J'ai pas vraiment eu l'habitude de ça en BASIC sur 83+ !gni

algo ? c quoi ça ?
Ah oui tiens, c koi ça ?! confus .... grin
Bon eh bien je vais essayer avec Xlib. Merci ! smile
www.wikio.fr/user1921&info=comments

14

J'ai déjà un peu améloiré le buffer :

FastCopyScreen(buffer,LCD_MEM);
memset(buffer, 0, 3840);

Ca va déjà bien plus vite ! smile
C quoi la fonction qui est plus rapide que "memset(buffer, 0, 3840);"
Et puis "free" on l'utilise comment ?
www.wikio.fr/user1921&info=comments

15

void *buffer= calloc(3840, sizeof(char)); // déclaration écran virtuel au début du prog (selon les besoins)


***** fin du prog avant de quitter ***********
free(buffer); // désalloue la place prise par l'écran


LIS LE TUTO DE TI-FR SUR LES ALLOCATIONS DE MEMOIRE POUR COMPRENDRE
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

16

Merci bien ! smile

J'ai vu dans les sources d'un jeu qui utilise un buffer, qu'il n'y a pas memset(buffer,0,3840) mais seulment memcpy (LCD_MEM,buffer,LCD_SIZE);
Et puis on dirait que le jeu garde toujours l'image avec les statistiques du jeu en buffer.
Dans ce cas la on fait comment pour remttre le buffer à 0 et garder en mémoire une image dans le buffer ?
confus
www.wikio.fr/user1921&info=comments

17

effacer le buffer mais garder ce qu'il y a dedant ?! trisotrisotrisotriso

heu y'a un prob d'énoncé là. gringrin

memcpy(blablab); >> copie le contenu de l'écran virtuel (buffer) sur l'écran réel de la TI

C'est quel jeu stp ? quel lien pour les sources ?? (j'essairai comme ça de comprendre ce que tu veux dire).
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

18

Le jeu c ai.1.5. En fait il y a plusieurs versions et j'ai téléchargé celle où il y a les sources.
J'ai cherché memset() par exemple (avec Find), et bien il n'y es pas et les stats sont forcément enregistré dans le buffer sans être redessiner à chauqe fois parce-qu'avec printf_xy() il tournerait à 2 fps
www.wikio.fr/user1921&info=comments

19

Raphaël
a écrit : Les fonctions d'Xlib sont plus rapide que celle d'extgrap ?

Oui, mais:
Avec les sprites d'extrgraph, le jeu tourne déjà à au moins 250 Fps !eek

Alors garde ExtGraph. Avec la qualité de l'écran des TI-89/92+/V200 et celle des yeux humains, dès qu'on dépasse 10 fps (chiffre arbitraire donné par Thomas Nussbaumer, mais c'est ça l'ordre de grandeur), on ne voit plus la différence. Donc ce n'est vraiment pas la peine de dépasser les 250 fps (250 est largement supérieur à 10).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

Kevin Kofler a écrit :
dès qu'on dépasse 10 fps (chiffre arbitraire donné par Thomas Nussbaumer, mais c'est ça l'ordre de grandeur)

PpHd donne 15 comme minimum je crois.
(250 est largement supérieur à 10).

t vraiment sûr ? hum
il me faudrait une petite démo, je suis pas convaincu, là. magic

21

Humm, Kevin, en effet, 250 est il vraiment supérieur à 10 ???

ça c'est ce que te donne ta calculatrice, mais il vaudrait mieux le démontrer. gringrinwink
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

22

oué, ces jeunes ne savent plus compter sans leur calculette embarrassed

P.S.
je pense qu'il voulait surtout insister sur le largement plutot que sur le supérieur, mais dit comme ça c assez 'igolo :}

23

Voilà ce que dit Pphd:

Mais la principale caracteristique de Fer3c est son Fps. 130 Fps sur Ti-89 sans optimisations ! Il en resulte de gros bugs graphiques (L'ecran ne travaille qu'a 90 Hz environ). Ce qui fait que j'ai du limiter a 60 Fps. Par ailleurs, maintenant, je me rends compte que la limite pour faire des animations est 12.5 Fps environ. En dessous ce sera sacade, au dessus, ca sera ok. Mais comment se fait-il alors que l'on remarque une difference entre les jeux tournant a des Fps tres differentes 20 et 60 par exemple ? Le probleme est qu'a faible fps, on ne peut pas se permettre de rendre des images statiques, comme les cartes 3D savent si bien rendre, mais des images dynamiques, ce qui est bien plus complique. C'est pour ca que les programmeurs restent a des fps eleves.

D'ailleurs je viens de télécharger Chrono Fantasy qui est vraiment très très impressionnant !!! eek
Le jeu a bien été programmé en asm ? Et en C c'est possible de faire le même jeu ?
Ca vient de quoi la défférence de rapidité entre le C et l'asm si ce sont tout deux des language compilés ? confus


Mon jeu n'utilise pas de cartes 3D et pas de niveau de gris: je viens de commencer la programmation en C cette semaine alors je n'y vais pas trop fort. smile

En gros c'est un jeu comme AIv1.5. C'est pour ça que j'ai regardé les sources et g rien compris à la gestion du buffer dans ce jeu. sad
Là g juste fait la vaisseau, les balles et un petit menu dont une option pour activer le compteur de FPS.
Maintenant (sans les FPS afficher) le jeu tourne sans doute à plus de 300 FPS sur HW2.
Pour ce jeu 60 c'est suffisant mais je pensais le ralentir avec des routines d'AI et de gros sprites. A mon avis ce ne sera pas suffisant ! grin

Si j'ai trouvé un truc: afficher toutes les stats avec printf_x_y mais là je descend en dessous de 60 Fps.
Il n'y a pas une autres fonctions ou un autres moyen bien plus rapide pour afficher les stats dans le jeu ? Dans AI, le programmeur le gère très bien mais je ne sais pas comment il fait. Le pire c'est qu'il utilise uniquement les libs de TIGCC !


www.wikio.fr/user1921&info=comments

24

Raphaël a écrit :
Ca vient de quoi la défférence de rapidité entre le C et l'asm si ce sont tout deux des language compilés ? confus

cf ton topic frame rate, post 25.... faut lire les réponses des fois..

25

Raphaël : Quand tu monopolises un espace de la RAM, il faut toujours le libérer quand tu n'en a plus besoin, sinon les autres programmes auront moins de place pour eux puisque l'espace mémoire que tu as alloué est marqué comme "interdit d'y toucher : un programme ce sert de cet endroit" ! le TIOS ne peut pas deviner à quel moment tu n'as plus besoin de l'espace alloué, c'est évident ! il faut le lui dire : ça se fait avec free.

GX_ClrScr c'est une fonction beaucoup plus rapide que memset pour effacer un buffer.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

26

lol thibeau et sa pubsmile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

27

Bah je répond à sa question ! tu peux parler de Xlib_ClrScr si tu veux tongue
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

28

Non, pas aujoud'huismile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

29

XClrGPlan(); tonguetongue
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

30

bon...
void XGPlanc(register void *GPlan asm("a0"));
void XBWPlanc(register void *BWPlan asm("a0"));
void XClrGPlan();
void XClrLPlan();
void XClrDPlan();
void XClrBWPlan();
void XCpyGPlanToLCD();
void XCpyGPlanToInvLCD();
void XCpyDPlanToLCD();
void XCpyDPlanToLLCD();
void XCpyLPlanToLCD();
void XCpyLPlanToDLCD();
void XCpyBWPlanToDPlan();
void XCpyBWPlanToLPlan();


trouvez la fonction que vous cherchezsmile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!