Jump to content
Jagware
Sign in to follow this  
GT Turbo

Débat sur les listes de sprites.

Recommended Posts

GT Turbo    3

J'y penses depuis un moment mais la on va tous y réfléchir en meme temps pour avoir le meilleur.

 

 

 

Sur la Jag les sprites sont affichés d'après une liste, qui décrit différents parametres pour chaque sprites, et surtout dans les parametres il y a un adresse qui permet de 'linker' le prochain descripteur de sprite.

 

 

 

95% des jeux Jag ou des sources que j'ai pu voir font de la liste statique. On genere la liste chaque Vbl d'après une sorte de pseudo liste.

 

 

 

Mais on pourrait généré une premiere fois la liste en statique et après la géré en dynamique, au lieu de reconstruire la liste, utilisé la possibilité de 'linker' pour effacé ou rajouté un sprite et tout cela pourrait se faire au Gpu, apparement personne ne l'a fait ou y a pensé.

 

 

 

Quelqu'un a une meilleur idée ? Ou une autre technique ?

 

 

 

GT Curieux !! :P

Share this post


Link to post
Share on other sites
RaZ    0

Je viens de me rendre compte avoir créer deux fois le même forum... :wacko:

 

Bon, ce topic passe en développement, parce que faut pas déconner et je clos un des deux forums...

 

 

 

P.S. : Au fait, c'est pas un débat ça, hein, c'est juste une requète (sur une) technique. Je suis pas Robert (celui qui commence par A, finit par Z et est énorme) mais faut voir à pas prendre les coins pour des coing.

Share this post


Link to post
Share on other sites
SCPCD    0

Salut !

 

 

 

En fait, j'y ai déjà pensé ;) !

 

 

 

Pour mon OS, j'ai réservé une zone mémoire suffisante pour faire une liste de 100 sprites et j'ai ensuite fait un system dynamique : je peux rajouter, enlever, activer ou desactiver n'importe quelle objet afficher et tout sa en pouvant changer l'ordre d'affichage très facilement. (j'utilise une liste chainée)

 

 

 

Pour pouvoir trouver l'objet souhaitait, j'ai rajouter un champ 'nom' qui me permet de mettre un nom à un objet et ainsi de le retrouver facilement.

 

 

 

Ceci me permet de faire :

 

une initialisation de l'affichage au démarrage avec une image de fond et la souris;

 

et ensuite, je peux rajouter les icones, qui sont donc physiquement après l'objet souris mais avec les liens de la liste modifié tel que la souris reste toujours le dernier objet à afficher.

 

 

 

Ce code a été fait au GPU.

 

je pourrais te filer le code et une partie des explications supplémentaires ce week-end.

 

 

 

voici un début d'explication :

 

[pfs]5-jev2_f_objs.pdf[/pfs]

 

 

 

A+

Share this post


Link to post
Share on other sites
SCPCD    0

Voici comme prevu le code GPU et le code 68000 qui va avec.

 

 

 

Mais ne pouvant pas mêtre tout le code (secret oblige ;)), ce code n'est qu'a titre indicatif.

 

il n'est pas possible d'utiliser directement le code (utilisation de variable systeme, et de fonctions que je garde pour l'instant)

 

 

 

Néanmoins, les noms des variables systems sont suffisaments clair pour qu'il soit possible de le faire fonctionner et certaines fonctions utilisé non fourni peuvent être zappées sans problem.

 

 

 

Je pense que même si il n'y a pas (du tout) beaucoup de commentaire, le code est suffisament clair pour être compris.

 

 

 

Et de toute facon, je suis là !!!

 

Alors pas de panique !!

 

N'hésitez surtout pas à me poser des questions !!;)

 

 

 

SCPCD.

 

 

 

 

 

[pfs]5-code_opliste.txt[/pfs]

Share this post


Link to post
Share on other sites
GT Turbo    3

Je vois un trap #13, tu l'as détourné je penses, parce que sauf erreur de ma part, aucun trap n'est dispo a l'origine si ?

 

 

 

Est ce qu'il reste un domaine ou tu as pas fais des essais ? Que je puisse quand meme faire quelque chose ? lol !!

 

 

 

La compression (D'images et de données) en général, t'y a pas encore mis le nez dedans si ? Sinon j'ouvres un autre sujet pour pouvoir en discuter, et cela me laissera un domaine ou fouiller !!

 

 

 

GT Trop épaté par SCPCD :yes:

 

 

 

P.S. : On a pratiquement tout ce qu'il faut pour dvper des jeux en séries ! lol !

Share this post


Link to post
Share on other sites
SCPCD    0

Ben en fait, sur mon OS, j'ai utilisé des traps pour des fonctions spécials comme l'ajout de sprites(voir precedent), j'ai aussi fait des fonctions pour l'allocation mémoire et la pagination (au passage : trop génial la pagination quasi-hard ;)!!), et bien d'autres....

 

 

 

Mais je ne sais pas trop si je vais garder le principe des traps car ce sont des interruptions et sa augmente le niveau de priorité du 68000...(et donc sa ralentit le DSP et GPU)

 

 

 

c'est pratique mais bon.....

 

j'hésite encore a les garder....

 

 

 

Sinon, pour que GT puisse s'occuper :P :

 

 

 

Je n'ai pas du tout touché a la compression de données ni des images.

 

Ni a la musique d'ailleurs.(sa serais bien du MP3 non ?)

 

 

 

Au fait, en parlant de compression, il y a une compression video qui semble assez puissante et je voudrais savoir si c'est possible de le faire pour la Jag : c'est la compression XYZ. (elle compresse plus que du MPEG1 et est de meilleur qualité et a besoin que d'un peu plus de puissance)

 

 

 

A+

 

SCPCD.

Share this post


Link to post
Share on other sites
GT Turbo    3

Tu as un peu de doc sur ta compression XYZ ?

 

 

 

Je m'occupes de la partie compression, ayant déjà eu l'occasion de faire 2,3 trois essais avec Azrael. Par contre je vais surement voire pour trois compressions différentes :

 

 

 

- graphisme fixe

 

- graphisme animé

 

- son

 

 

 

J'ouvre un autre sujet pour eviter de polleur celui la.

 

 

 

 

 

GT En train de compressé ! ;)

Share this post


Link to post
Share on other sites
GT Turbo    3

J'ai pas encore eu le temps de regardé en détail ton code, comme j'ai encore celui de Fredifredo a regarder de près. Apparement le processeur objet détruit des parties de phrases de certain objets, c'est vrai ? Et c'est bien ce indiqué dans la doc ?

 

 

 

 

 

GT Turbo :D

Share this post


Link to post
Share on other sites
SCPCD    0

D'après mes tests et la doc, il semble bien que le processeur d'objets modifie le DATA pour savoir qu'elle est l'adresse du debut de la prochaine ligne de l'image.

 

 

 

SCPCD :D

Share this post


Link to post
Share on other sites
GT Turbo    3

J'ai enfin rallumé mon Falcon, et commence a m'y remettre.

 

 

 

 

 

GT Turbo :yes:

 

 

 

Fredi regarde tes messages privés !!

Share this post


Link to post
Share on other sites
GT Turbo    3

Je fais remonter ce sujet, car j'ai commencé a écrire un gestionnaire de liste, pour l'instant juste au 68000 (Quoique que vu les décalages et les bricolages sur les champs de bits, le Gpu serait plus de mise). Je réécrirais celui ci après au Gpu, cela pour des histoire d'optimisation et de controle.

 

 

 

Le but étant bien sur de tout faire au Gpu, mais absolument tout, cela pour éviter de plomber le bus avec notre 'escargot' de 68000, le maillon faible d'une Jaguar. Au départ j'avais prévu une base de 192 sprites, car c'était divisible par 32, mais après calcul et essais, je m'apercois que le procédé que je voulais utiliser est plus lent que l'actuel et mange de la ram en plus pour rien, donc 'au revoir !'.

 

 

 

Je vais allez continuer le code, a plus !!

 

 

 

TG orbuT :wacko:

Share this post


Link to post
Share on other sites
GT Turbo    3
Azrael :


Mouais, si ça continue on va retirer le 68000 car il bouffe du temps d'horloge sur le bus :P





C'est exactement cela, le but du jeu c'est de rentrer le maximun dans le couple Gpu / Dsp et de carrément mettre le 68000 en attente, pour éviter qu'il nous traine ces boulets !!



GT En train d'accélerer ! :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3

Je reprends un peu le code ce soir, et a partir de demain soir, je me bloques le weekend sur la gestion de liste, je veux voir des sprites, des sprites a la tonne, mon écran plein de petit spritos tout colorés, désolé pour le délire mais j'ai trop hate.

 

 

 

GT Amoureux des sprites :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3

Vu que maintenant je peux debugger les listes de sprites, j'ai pu réparer ma routine, et j'ai commencé a écrire les routines pour modifier les coordonnées, en X cela est passé tout seul en Y j'ai un petit soucis suite au fait de la restauration de la liste vu qu'elle n'est pas réconstruite a chaque Vbl (Power !!! :yes:), mais ce soir j'attaques de plein pied !!

 

 

 

GT Parti coder !! :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3

AAAAAAAAAARRRGGGHHH !! Je vais finir interner !! Mon gestionnaire de sprite ne veut pas m'écrire mon objet de fin de liste (Stop objet) en 3 position quand j'ai deux objets !! Avec un objet cela marche parfait, mais avec 3 il s'amuse a me placer un sprite 'objet bitmap' vide a la place et bonjour le plantage !! Je vais me calmer un peu et reprendre plus fort, c'est pas un bout de code qui aura ma peau !! Parce que GT Trop fort (Et surtout très vantard....)

 

 

 

 

 

GT En train de me calmer !! :wacko:

Share this post


Link to post
Share on other sites
GT Turbo    3

Non, le nombre de sprite peut ètre impaire, je vais vérifier certaines choses, car le plus c.... c'est que la liste doit se trouver sur une adresse multiple de 8 (Cela passe encore), un ojet bitmap standard doit ètre aligné sur 16, un objet bitmap zoomé sur 32, donc faut que je vérifies aussi tous les alignements (Cela fait que la 4 fois que je le fais !)

 

 

 

GT Pas sur la limite !! :wacko:

Share this post


Link to post
Share on other sites
GT Turbo    3
Fredifredo :


As-tu regardé dans le code source que je t'ai envoyé ? ou bien celui de Pong ?





Mon problème est plus un problème de code meme, pas de principe, et le petit truc c'est que beaucoup de personnes reconstruises la liste a chaque Vbl, c'est plus simple mais moins rapide c'est pour cela que d'autres sources ne sont pas trop a meme de m'aider, mais le truc ultra c.. c'est que je fais les essais d'abord au 68000 pour après recoder le tout au Gpu, je ferais mieux d'attaquer au Gpu direct, j'ai l'impression que je me débrouilles mieux avec lui qu'avec le 68000 :wacko:



Ca va se finir comme cela.....





GT Un super pote au Gpu :wub:

Share this post


Link to post
Share on other sites
GT Turbo    3

J'ai règlé mon problème, par contre ce rigolo d'O.P. (Object Pocessor) ne m'affiche pas mon second sprite, faut que je vérifies l'adresse du graffe. Sinon cela a l'air de coller. Merci beaucoup au debugger !!!

 

 

 

GT Plus bugger !! :yes:

Share this post


Link to post
Share on other sites
GT Turbo    3

Ca y est est !! Cela fonctionne a merveille, j'ai un paquet de sprites bien joyeux sur mon écran, cela marche, encore une modification et je commences a tout réecrire au Gpu.

 

 

 

GT Turbo ;)

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×