Sgdk - Sega Megadrive / Genesis Development Kit

Page 2 sur 16 Précédent  1, 2, 3 ... 9 ... 16  Suivant

Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par ichigobankai le Lun 25 Déc 2017 - 11:01

Stef te donnera une réponse précise, mais de mémoire environ 1500.

ichigobankai
Patient incurable

Nombre de messages : 1583
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par upsilandre le Lun 25 Déc 2017 - 11:10

oui ca doit etre de cette ordre la puisque la VRAM de la MD = 2000 tiles mais qu'il faut reserver un bon quart de cette espace pour d'autre truc.
avatar
upsilandre
Guéri miraculeux

Masculin Nombre de messages : 2907
Age : 43
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Lun 25 Déc 2017 - 11:48

Vetea a écrit:Coucou,

Conseil, si tu utilise ton Bga.Map dans ta fonction VDP_SetMapEx, ça va ramer GRAVE !! C'est normal, tu vas unpacker à chaque frame ta map !!!

Donc avant de faire ça, et en dehors de ta boucle, déclare en globale un pointeur Map :

Map* MaMap ;
( Eventuellement dans ton .h -> extern Map* MaMap ; )

Ensuite avant ta boucle principale :
MaMap = unpackMap(Bga.map, NULL);

Et après dans ta boucle principale :
VDP_setMapEx(PLAN_A, MaMap, etc ... );

Ca sera beaucoup plus fluide ainsi. Wink

Bonnes fêtes !!  santa santa

Tu assures Vetea, tu as parfaitement expliqué le problème thumleft
Je suis arrivé trop tard mais je vois que la relève est là Very Happy

Un petit détail, lorsque MaMap n'est plus utilisée (changement de niveau), il est préférable de libérer la mémoire utilisée avec avec MEM_free(MaMap) sinon au bout d'un moment tu risques de la remplir.

Sinon j'espère que vous avez tous bien festoyé hier soir Very Happy

Pour le nombre de tiles utilisables, ça dépend de plusieurs choses, enfin surtout de l'arrangement de la VRAM.
Dans SGDK par défaut c'est effectivement proche de 1500, tu peux utiliser la constante TILE_USERLENGTH pour savoir le nombre de tile utilisable par l'utilisateur (le reste de la VRAM étant réservée par SGDK).
TILE_USERINDEX te donne le premier index utilisable par l'utilisateur (en théorie 0x10 car les 16 premiers tiles sont réservés par SGDK, ce sont des tiles plein pour chaque couleur).
TILE_USERMAXINDEX te donne l'index maximum.
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Invité le Lun 25 Déc 2017 - 19:01

Merci Stef, j'ai eu un bon formateur. :)

Invité
Invité


Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Monos le Mar 26 Déc 2017 - 7:27

Yop les coupinous voici ce que j'ai sortis !
TILE_USERLENGTH => 1296
TILE_USERINDEX => 16
TILE_USERMAXINDEX =>1311

A quoi sert au SDGK les 16 premiers tiles de couleurs ?
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 189
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Mar 26 Déc 2017 - 11:20

@Monos Ca me parait faible tes chiffres, tu es bien sur la dernière version de SGDK ? Auparavant j'utilisais des plans de 64x64 ce qui consommait beaucoup de VRAM mais depuis SGDK 1.31 (je crois) je suis passé à 64x32 (ce qui est suffisant pour la plupart des cas de figure) et ça libère pas mal de tiles.
Les 16 premiers tiles sont les tiles "plains" (tile remplis des couleur de 0 à 15), ça peut servir on va dire (pour faire du remplissage rapide, debug palette, etc...). Quand j'ai tenté de les viré beaucoup d'utilisateurs s'en étaient plains Wink Il y a aussi la font qui bouffe 96 tiles, on peut la redéfinir mais c'est vrai que par défaut elle n'est pas compté comme espace utilisateur... cela dit rien n'empêche de l'écraser si elle n'est pas utilisée.
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par shingosama le Mar 26 Déc 2017 - 11:38

En parlant de font, il y aurait un moyen de changer la taille voir de la remplacer?
avatar
shingosama
Interne
Interne

Masculin Nombre de messages : 5146
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Monos le Mar 26 Déc 2017 - 12:14

Je pense être au dernier sdk.
Je vais regarder tout ça de plus près.
Existe t'il une variable pour connaitre le SDK utilisé ?

avatar
Monos
Patient contaminé

Masculin Nombre de messages : 189
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Tryphon le Mar 26 Déc 2017 - 12:49

@shingosama a écrit:En parlant de font, il y aurait un moyen de changer la taille voir de la remplacer?
Non, et oui. Tu peux la remplacer en chargeant des tiles au même endroit.

Si tu veux une fonte plus grande, c'est à toi de gérer l'affichage dans un tilemap. Ce n'est pas très difficile.
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 12667
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Monos le Mar 26 Déc 2017 - 13:14

Heu oué, je placé les mises à jour du SDK au mauvais endroit.
Je passe de 1296 à 1424.
Je gagne 34 tuiles de 16px c'est déjà ça xd
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 189
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Mar 26 Déc 2017 - 13:57

Dans le fichier readme.txt sinon y'a le SGDK_VERSION mais je l'ai ajouté dans la version 1.32 il me semble (et j'ai oublié de le mettre à jour dans la 1.33 ^^)
1424, c'est un peu moins que ce que je pensais mais possible car il y a la font qui en bouffe pas mal quand même (96).
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Monos le Mar 26 Déc 2017 - 14:20

Merci beaucoup des informations.
avatar
Monos
Patient contaminé

Masculin Nombre de messages : 189
Age : 34
Localisation : Cuchery
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par alekmaul le Mar 26 Déc 2017 - 17:22

Petite question concernant les sprites :
J'ai une planche de sprites de 32*2048 pix, que je charge en tileset car je ne peux pas utiliser le moteur de sprite (conversion d'un jeu qui vous fera plaisir je pense Wink.
Quand j'utilise ensuite les instructions :
Code:
   
VDP_loadTileData(  ..., 4*3, TRUE);
VDP_setSpriteFull(nb_sprites_oam,x,y,SPRITE_SIZE(4,3),TILE_ATTR_FULL(PAL0,FALSE,FALSE,FALSE,...),0);
Mes tiles du sprites sont chargés de haut en bas puis de gauche à droite, c'est normal o_O?
Je pensais plus de gauche à droite puis haut en bas.
Car là, mon sprite, il est tout mélangé Sad ....

alekmaul
Patient contaminé

Masculin Nombre de messages : 502
Age : 51
Localisation : Blois
Date d'inscription : 02/11/2014

http://www.portabledev.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Tryphon le Mar 26 Déc 2017 - 17:53

Oui, c'est normal. C'est l'ordre dans lequel les sprites sont affichés sur Megadrive.
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 12667
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par alekmaul le Mar 26 Déc 2017 - 21:11

oui, étrangement, j'ai réussi à trouver ma solution en utilisant les sprites à la place du tileset vu que ce n'est pas la même organisation.
Bref, pour les personnes voulant savoir comment utiliser les sprites sans le moteur de sprites, voici comment pointer sur le bon sprite dans votre bitmap (yspr étant l'indice du sprite à afficher) :
Code:
VDP_loadTileData( (const u32 *) pgfx->animations[yspr]->frames[0]->tileset->tiles, idTile+GFXADRSPR, 4*3, TRUE);

 VDP_setSpriteFull(nb_sprites_oam,x,y,SPRITE_SIZE(4,4),TILE_ATTR_FULL(PAL0,FALSE,FALSE,FALSE,idTile+GFXADRSPR),0);
Allez, le jeu, puisque c'est Noël, que je suis en train de préparer pour la megadrive , Rick Dangerous II Very Happy ! Pas encore gagné mais en bonne voie ....

*EDIT* Bon, j'ai réussi à m'en sortir avec rescomp et les sprites, il y a effectivement un encodage différent des tilessets. Même si cela prend pas mal de place car les animations ne sont pas gérées, mes sprties sont maintenant correctement affiché. En effet, SprDefinition->animations[]->frames[0]->tileset->tiles pointe sur le bon tileset de sprite.

@Stef : il ne serait pas possible d'avoir une option dans rescomp qui permet d'encoder les sprites sans les animations ?

alekmaul
Patient contaminé

Masculin Nombre de messages : 502
Age : 51
Localisation : Blois
Date d'inscription : 02/11/2014

http://www.portabledev.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par F.L le Mer 27 Déc 2017 - 8:20

Rick dangerous II sur megadrive ! Cool !
Joli projet  Razz
Et papa noel n'oublie pas la petite mise à jour de pvsneslib dans mon soulier aussi  Mr. Green
avatar
F.L
Docteur *
Docteur *

Masculin Nombre de messages : 3096
Age : 43
Localisation : hérault
Date d'inscription : 11/06/2012

http://fl.basic.free.fr

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par alekmaul le Mer 27 Déc 2017 - 9:08

@F.L a écrit:Rick dangerous II sur megadrive ! Cool !
Joli projet  Razz
Et papa noel n'oublie pas la petite mise à jour de pvsneslib dans mon soulier aussi  Mr. Green
Oui, je fais au mieux ... :)

alekmaul
Patient contaminé

Masculin Nombre de messages : 502
Age : 51
Localisation : Blois
Date d'inscription : 02/11/2014

http://www.portabledev.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par ichigobankai le Mer 27 Déc 2017 - 9:45

Très bon choix le Rick Dangerous II !
Après t'auras plus qu'a nous faire une ptite compile Rick Dangerous I + II Mr. Green
avatar
ichigobankai
Patient incurable

Masculin Nombre de messages : 1583
Age : 39
Localisation : 49
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par TotOOntHeMooN le Mer 27 Déc 2017 - 10:13

Rick et Rick II, c'est surtout une histoire de transition 8/16 bit.
Il faut te souhaiter qu'il sera mieux que la versions SMS en cours de dev, hein ! Wink
avatar
TotOOntHeMooN
Docteur *
Docteur *

Masculin Nombre de messages : 8014
Age : 49
Localisation : France
Date d'inscription : 18/04/2013

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Mer 27 Déc 2017 - 12:17

@alekmaul> Je pourrais effectivement faire des sprites plus léger (sans les informations d'animations) mais je pense que ça ne va concerner que très peu de personnes. Pourquoi ne passes tu pas par le sprite engine (simple curiosité) ? ^^
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Invité le Mer 27 Déc 2017 - 12:40

Le Sprite Engine est tout simplement génial. 
Surtout que Stef a fait beaucoup d'amélioration et d'ajouts.
L'essayer c'est l'adopter !

Après oui, c'est pas "bas niveau", mais on s'en tape si ça fait le boulot !! Pour un jeu de plateforme comme Rick, ca serait parfait, c'est pas un Doom Like non plus. ^^

Invité
Invité


Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par alekmaul le Mer 27 Déc 2017 - 14:16

@Stef a écrit:@alekmaul> Pourquoi ne passes tu pas par le sprite engine (simple curiosité) ? ^^
Car je fais du reverse du code ST du jeu et que je veux juste afficher les sprites :)
Mais t'inquiètes, c'est bon maintenant, si personne ne veut d'un sprite engine light, y'a pas de pb pour moi ^^
Je suis en train de me battre maintenant dans le code porté du 68000 vers le C Wink

alekmaul
Patient contaminé

Masculin Nombre de messages : 502
Age : 51
Localisation : Blois
Date d'inscription : 02/11/2014

http://www.portabledev.com

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par shingosama le Sam 13 Jan 2018 - 8:54

Dites les gars, y a t-il une limitation de la taille d'une carte si oui, quelle est la résolution ou le nombre de tiles max? J'ai réalisé une map de 192 tiles par 40 et lorsque je scroll, la mise à jour de la carte se fait par morceaux manquant. Bizarrement quand ma map faisait maximum 128 tiles je n'avait pas de soucis. Quand je dis manquant, c'est que la mise à jour n'est pas complète.
avatar
shingosama
Interne
Interne

Masculin Nombre de messages : 5146
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Tryphon le Sam 13 Jan 2018 - 9:02

La largeur d'un plan en mémoire est de 64 tiles, soit 512 pixels (par défaut). Si ta carte fait plus, c'est à toi de la mettre à jour. Si ça bugge, c'est que t'as merdé quelque part Razz

Fais voir ton code ?
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 12667
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par shingosama le Sam 13 Jan 2018 - 9:18

Code:
        y = scroll;
        scroll -= 2;
        next_y = scroll;

        z = (s8)(next_y / 8) - (s8)(y / 8);
        if(z)
        {
            az = (scroll / 8 ) + z;
            VDP_setMapEx(PLAN_B, map, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 0, az & 31, 0, az & 191, 40, 1);
        }

scratch
avatar
shingosama
Interne
Interne

Masculin Nombre de messages : 5146
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Dim 14 Jan 2018 - 15:46

Sur MD tu peux avoir une map qui fait jusqu'à 128x32 ou 32x128 tiles...
Mais bon normalement c'est juste "un cache", tu n'es pas sensé stocker toute ta map dedans, moi je travaille souvent avec un tilemap de 64x32, c'est suffisant... ensuite tu met à jour ta map au fur que tu te déplaces dans le tilemap. En gros le tilemap hardware est un cache, tu peux le voir comme un "rouleau" sur lequel tu boucles Wink
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par shingosama le Lun 15 Jan 2018 - 19:32

Merci @Stef, en fait le problème c'était la carte et le code.

Code:
 az & 191

Du coup j'ai passé la map en 256 tiles ou alors fallait trouver une autre méthode :)

Code:
e = (scroll / 8) + (z < 0 ? 191 : -1);
avatar
shingosama
Interne
Interne

Masculin Nombre de messages : 5146
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef le Mar 16 Jan 2018 - 11:12

191 ce n'est pas un masque d'une puissance de 2, tu as un bit à 0. Je ne sais pas ce que tu veux faire avec mais ça risque de ne pas marcher :p
Sinon voici un code bien commenté qui montre comment faire un scrolling multi directionnel sur une grande map :
https://github.com/kcowolf/GenScrollingMapDemo

Le fichier intéressant étant celui-ci :
https://github.com/kcowolf/GenScrollingMapDemo/blob/master/src/ScrollingMap.c
avatar
Stef
Infirmier

Masculin Nombre de messages : 4610
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par shingosama le Mar 16 Jan 2018 - 11:19

Merci pour le partage Stef !

En fait, c'est juste une coïncidence. J'avais commencé à réaliser une map et je suis me suis arrêté à 192 tiles, 32 tiles x 6.

Sauf que j'ai compris que ça ne marchait pas comme ça.
avatar
shingosama
Interne
Interne

Masculin Nombre de messages : 5146
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Tryphon le Mar 16 Jan 2018 - 11:22

Oui, il faut absolument que ta "sous-carte" (la portion effectivement rendue dans la tilemap à un instant t) ait pour dimension une puissance de 2.

Vu que ton écran fait 40 tiles de large, qu'il faut en prévoir une de plus au cas où ton scrolling est à cheval sur 2 colonnes, ça marche impec avec 64 tiles.
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 12667
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par troudki le Mer 17 Jan 2018 - 8:41

Hello
Avec la nouvelle version SGDK 1.34 sortie récemment  (merci stef), est ce que vous voyez bien les sprites affichés dans le sample sprite ?
++
avatar
troudki
Patient contaminé

Masculin Nombre de messages : 131
Age : 45
Localisation : Antibes
Date d'inscription : 02/01/2014

http://www.z-team.fr

Revenir en haut Aller en bas

Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 16 Précédent  1, 2, 3 ... 9 ... 16  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum