Sgdk - Sega Megadrive / Genesis Development Kit
+20
pckid
Orion_
Zarnal
IK+
drludos
Hpman
fourchette
vingazole
fanoplusplus64K
GliX
Igor
troudki
TotOOntHeMooN
ichigobankai
upsilandre
Stef
F.L
uran
Tryphon
Monos
24 participants
Page 2 sur 18
Page 2 sur 18 • 1, 2, 3 ... 10 ... 18
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef te donnera une réponse précise, mais de mémoire environ 1500.
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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.
upsilandre- Interne
- Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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.
Bonnes fêtes !!
Tu assures Vetea, tu as parfaitement expliqué le problème
Je suis arrivé trop tard mais je vois que la relève est là
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
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.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci Stef, j'ai eu un bon formateur. :)
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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 ?
TILE_USERLENGTH => 1296
TILE_USERINDEX => 16
TILE_USERMAXINDEX =>1311
A quoi sert au SDGK les 16 premiers tiles de couleurs ?
Re: Sgdk - Sega Megadrive / Genesis Development Kit
@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 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.
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 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.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
En parlant de font, il y aurait un moyen de changer la taille voir de la remplacer?
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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é ?
Je vais regarder tout ça de plus près.
Existe t'il une variable pour connaitre le SDK utilisé ?
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Non, et oui. Tu peux la remplacer en chargeant des tiles au même endroit.shingosama a écrit:En parlant de font, il y aurait un moyen de changer la taille voir de la remplacer?
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.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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
Je passe de 1296 à 1424.
Je gagne 34 tuiles de 16px c'est déjà ça xd
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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).
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).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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 .
Quand j'utilise ensuite les instructions :
Je pensais plus de gauche à droite puis haut en bas.
Car là, mon sprite, il est tout mélangé ....
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 .
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);
Je pensais plus de gauche à droite puis haut en bas.
Car là, mon sprite, il est tout mélangé ....
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui, c'est normal. C'est l'ordre dans lequel les sprites sont affichés sur Megadrive.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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) :
*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 ?
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);
*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[
@Stef : il ne serait pas possible d'avoir une option dans rescomp qui permet d'encoder les sprites sans les animations ?
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Rick dangerous II sur megadrive ! Cool !
Joli projet
Et papa noel n'oublie pas la petite mise à jour de pvsneslib dans mon soulier aussi
Joli projet
Et papa noel n'oublie pas la petite mise à jour de pvsneslib dans mon soulier aussi
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui, je fais au mieux ... :)F.L a écrit:Rick dangerous II sur megadrive ! Cool !
Joli projet
Et papa noel n'oublie pas la petite mise à jour de pvsneslib dans mon soulier aussi
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Très bon choix le Rick Dangerous II !
Après t'auras plus qu'a nous faire une ptite compile Rick Dangerous I + II
Après t'auras plus qu'a nous faire une ptite compile Rick Dangerous I + II
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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 !
Il faut te souhaiter qu'il sera mieux que la versions SMS en cours de dev, hein !
TotOOntHeMooN- Docteur agrégé **
- Nombre de messages : 18147
Age : 54
Localisation : Terre I
Date d'inscription : 18/04/2013
Re: Sgdk - Sega Megadrive / Genesis Development Kit
@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é) ? ^^
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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. ^^
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é
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Car je fais du reverse du code ST du jeu et que je veux juste afficher les sprites :)Stef a écrit:@alekmaul> Pourquoi ne passes tu pas par le sprite engine (simple curiosité) ? ^^
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
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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
Fais voir ton code ?
Fais voir ton code ?
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
- 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);
}
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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
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
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci @Stef, en fait le problème c'était la carte et le code.
Du coup j'ai passé la map en 256 tiles ou alors fallait trouver une autre méthode :)
- 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);
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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
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
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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.
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.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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.
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.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
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 ?
++
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 ?
++
Page 2 sur 18 • 1, 2, 3 ... 10 ... 18
Sujets similaires
» Sgdk - Sega Megadrive / Genesis Development Kit
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» BIERE PONG MegaDrive SGDK
» Lot de jeux sega megadrive / genesis
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» BIERE PONG MegaDrive SGDK
» Lot de jeux sega megadrive / genesis
Page 2 sur 18
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum