GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Sgdk - Sega Megadrive / Genesis Development Kit

+31
JoanCZ
vincent2105
Fax
Orion_
chrilith
Templeton
F.L
Tryphon
uran
Hpman
fourchette
65c02
drfloyd
chiss
Spirale
maldoror68
Top l'âne
troudki
tetsuro
emultion
Ricco59_59
dub
ganon551
TotOOntHeMooN
philip
ichigobankai
vingazole
bfg
Stef
r_songo
pckid
35 participants

Page 1 sur 34 1, 2, 3 ... 17 ... 34  Suivant

Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 19:09

Bonjour à tous,

Voilà je lance le Thread SGDK, car on a pollué le post de Michel alias BFG, et c'est pas Gentil.

Donc ce Thread servira à poser toutes les questions sur le Sdk SGDK.
Si vous souhaitez developper sur megadrive grâce au langage C.

Merci à vous.
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par r_songo Sam 22 Nov 2014 - 19:30

Trés bonne idée ce post.
Ca m'évitera de poluer la boite à MP de Stepf
r_songo
r_songo
Patient contaminé

Masculin Nombre de messages : 863
Age : 47
Localisation : Nancy
Date d'inscription : 18/11/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Sam 22 Nov 2014 - 19:53

Merci pour l'initiative, bonne idée en effet Wink
J'ai du en faire y'a longtemps mais je ne le retrouve plus :p
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 19:55

Je lance une 1ere question : pour concatener une chaine,

J'ai commencé par faire comme du C avec le + mais j'ai eu une erreur

Quand on a 3 chaines ou plus, la function StrCat est un peu juste,

Est ce le seul moyen de concaténer ?

Sinon je peux faire une sous fonction .
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par bfg Sam 22 Nov 2014 - 20:07

pckid a écrit:Je lance une 1ere question : pour concatener une chaine,

J'ai commencé par faire comme du C avec le + mais j'ai eu une erreur

Quand on a 3 chaines ou plus, la function StrCat est un peu juste,

Est ce le seul moyen de concaténer ?

Sinon je peux faire une sous fonction .

Oui c'est possible, et c'est le truc le plus compliqué à faire en C :) :)

Une chaine en C, c'est un tableau de char. Si tu veux encoder TOTO c'est :

machaine char[5];
machaine[0] = 'T';
machaine[1] = 'O';
machaine[2] = 'T';
machaine[3] = 'O;
machaine[4] = '/0'; // Fin de chaine

La signature de strcat c'est : char* strcat(char *dest,const char *src);


src, c'est la chaine que l'on ne va pas toucher, on va l'ajouter à dest. MAIS il faut que dest soit assez grand pour ne pas dépasser ça capacité.

Ex :
source char[5]={'T','O','T','O','/0'};
dest char[9]={'B','o','n','j','o','u','r',' ','/0'};

Si tu fait strcat (dest,src) ça va planter en effet tu va essayer de mettre 'Bonjour TOTO' dans un char[9]. Bref ça va merder chef !

Par contre si tu fait :

source char[5]={'T','O','T','O','/0'};
dest char[14]={'B','o','n','j','o','u','r',' ','/0'};

Ça devrait passer. Le mieux c'est de développer ses propres routines de concaténation avec des contrôles. Perso je pense qu'il vaut mieux faire (a développer) :

char *concat(const char* chaine1,const char* chaine2);

en utilisation :

nouvelleChaine = concat("Bonjour ","Toto");

Cette routine devra calculer la taille de la chaine1 (moins le /0) + la taille de la chaine2 et faire un malloc pour réserver en mémoire la taille calculée.

Ensuite, il faut parcourir caractère par caractère la chaine 1 et recopier dans la zone mémoire allouée, mais sans le /0 terminal, puis faire la même chose avec la chaine 2 avec le /0 terminal. Retourner la zone mémoire allouée.

Grosso merdo, c'est ce qui me vient en tête ...
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Sam 22 Nov 2014 - 20:14

y'a les fonctions de base dans l'unité string de SGDK :
Code:
u32 strlen(const char *str);
s16 strcmp(const char *str1, const char *str2);
char* strclr(char *str);
char* strcpy(char *dest, const char *src);
char* strcat(char *dest, const char *src);

Mais effectivement il faut allouer la mémoire en amont.
Vu l'espace réduit pour afficher du texte à l'écran, en général un allocation statique type :  char str[64];
est bien suffisant dans la plupart des cas Wink

Il y a également des méthodes pour transformer un entier en chaine de caractère (format decimal ou hexa-decimal) :
Code:
void intToStr(s32 value, char *str, s16 minsize);
void uintToStr(u32 value, char *str, s16 minsize);
void intToHex(u32 value, char *str, s16 minsize);

Ainsi que les valeurs virgules fixes :
Code:
void fix32ToStr(fix32 value, char *str, s16 numdec);
void fix16ToStr(fix16 value, char *str, s16 numdec);

Un truc important de savoir à propos de SGDK, y'a une documentation (format doxygen) qui explique le rôle de chaque méthode (je me suis embêté à l'écrire, autant qu'elle serve ^^) !
Vous pouvez la trouver dans le répertoire 'doc' de SGDK, il suffit d'ouvrir le fichier SGDK/doc/html/files.html pour accéder à l'index en quelque sorte, de là vous pouvez naviguer dans les différentes unités et trouver les différentes méthodes disponibles avec leur aidre =)


Dernière édition par Stef le Sam 22 Nov 2014 - 20:20, édité 3 fois
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 20:17

@ Bfg :  Je comprends ton idée, je ne savais pas que l'on pouvait faire cela avec les tableaux.

J'avais une idée de faire une function
et de faire une boucle sur chaque chaine et dans la boucle je faire 2 strcat afin de concaténer N chaines.

je retourne et je reviens vous voir ! tu as appréhendé le Sgdk michel ca y est ?
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 20:19

j'ai l'impression Stef que tu lis dans mon esprit, Je voulais juste afficher cela à mon ecran
quand je bouge le pad.

VDP_drawText("Voici mes coordonnées ! je suis en x : " + nXorder + " y :" + nYorder, 1, 1);
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Sam 22 Nov 2014 - 20:25

pckid a écrit:j'ai l'impression Stef que tu lis dans mon esprit, Je voulais juste afficher cela à mon ecran
quand je bouge le pad.

VDP_drawText("Voici mes coordonnées ! je suis en x : " + nXorder + " y :" + nYorder, 1, 1);

On a tous voulu faire ça :p

Donc en gros :
Code:

char str[64];
char strNum[16];

// init à  chaine vide
str[0] = 0;

// construction de la chaine
strcat(str, "Voici mes coordonnées ! je suis en x : ");
// ajout valeur
intToStr(nXorder, strNum, 1);
strcat(str, strNum);
// suite chaine
strcat(str, " y : ");
// ajout valeur
intToStr(nYorder, strNum, 1);
strcat(str, strNum);

VDP_drawText(str, 0, 0);

Ca prend beaucoup pus qu'une simple ligne mais actuellement c'est la manière de faire...
Idéalement il faudrait que j'ajoute un "printf" mais c'est beaucoup plus complexe à faire Wink
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 20:41

Merci ,

Petite question : j'ai une function non static , peut on l'appeller dans le main ?

ou doit on toujours avoir des functions statiques pour faire appel ?


Code:
void showScreen() {
    
     VDP_drawText("Voici mes coordonnées ! je suis en x : ", 10, 13);

}
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par bfg Sam 22 Nov 2014 - 21:13

??? Tu confonds pas avec le C++ ?
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Sam 22 Nov 2014 - 21:24

Je suis en C# toute la journée au boulot et javascript aussi, alors j'ai du mal faire du c, et en plus les contraintes ne sont pas les mêmes. Et puis comme je t'ai dit j'adore la prog object. Bon il y a les structure chez stef , donc cela peut se rapprocher un peu.

Mais le c à part l'ecole, je n'ai plus de souvenir.

tu as peut être raison. je regarde comment on peut gerer des functions sans void pour renvoyer de valeurs.
Sur c je me rappellais pas que les types de données etaient comme cela, je me rappellais de Int ou Char

#define FALSE   0
#define TRUE   1
#define NULL   0
#define MIN_U8   0x00
#define MAX_U8   0xFF
#define MIN_S8   -0x80
#define MAX_S8   0x7F
#define MIN_U16   0x0000
#define MAX_U16   0xFFFF
#define MIN_S16   -0x8000
#define MAX_S16   0x7FFF
#define MIN_U32   0x0000
#define MAX_U32   0xFFFFFFFF
#define MIN_S32   -0x80000000
#define MAX_S32   0x7FFFFFFF
#define s8   char
#define s16   short
#define s32   long
#define u8   unsigned char
#define u16   unsigned short
#define u32   unsigned long
#define vs8   volatile s8
#define vs16   volatile s16
#define vs32   volatile s32
#define vu8   volatile u8
#define vu16   volatile u16
#define vu32   volatile u32
#define uint8_t   u8
#define uint16_t   u16
#define uint32_t   u32
#define int8_t   s8
#define int16_t   s16
#define int32_t   s32
#define FASTCALL


merci à stef pour la doc c'est top !

Mais sinon BFG , je trouve que c'est du pseudo C plutôt proche de l'ASM que d'un veritable C.
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Sam 22 Nov 2014 - 23:42

pckid a écrit:Merci ,

Petite question : j'ai une function non static , peut on l'appeller dans le main ?

ou doit on toujours avoir des functions statiques pour faire appel ?

Au contraire une fonction "static" en C reste locale à l'unité, seules les fonctions non statiques sont globales et peuvent être utilisées dans les autres unités. D'où l'intérêt des fichiers .h (qui déclare les méthodes sans les implémenter).

Et le langage C utilisé dans SGDK est le vrai C Wink
Le C++ en est dérivé en apportant la notion objet en plus.
Le C# en reprend la syntaxe mais apporte le managé en plus ce qui en fait un langage de bien plus haut niveau..
Et pour les types, de base en C c'est effectivement :
Code:
(unsigned) char
(unsigned) short
(unsigned) long
(unsigned) int

Mais j'ai créé des alias (u8, u16 et u32) pour que ça soit plus simple et plus rapide à écrire.
Le type "int" en C est particulier... il prend la taille de l'architecture pour laquelle il a été compilé, disons que c'est le type register "optimal".
Sur MD par exemple il fait 16 bits, sur x86 il fait 32 bits, sur x64 il fait 64 bits...
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par bfg Dim 23 Nov 2014 - 7:11

pckid a écrit:Je suis en C# toute la journée au boulot et javascript aussi, alors j'ai du mal faire du c, et en plus les contraintes ne sont pas les mêmes. Et puis comme je t'ai dit j'adore la prog object. Bon il y a les structure chez stef , donc cela peut se rapprocher un peu.

tu as peut être raison. je regarde comment on peut gerer des functions sans void pour renvoyer de valeurs.
Sur c je me rappellais pas que les types de données etaient comme cela, je me rappellais de Int ou Char

[...]

Mais sinon BFG , je trouve que c'est du pseudo C plutôt proche de l'ASM que d'un veritable C.

En fait oui tu as raison mais :

#define s8 char

c'est des "directives" pour le précompilateur qui lui dit :

Chercher toutes les chaines 's8' et remplace les par des 'char'

Pour par exemple 

#define s8 char
#define vs8   volatile s8


Le précompilo va faire


cherche 'vs8' remplace par 'volatile s8'
puis il va faire une passe sur
cherche 's8' et remplace par 'char'


Au final si dans ton code tu as :


vs8 toto;
le précompilo va le transformer en mémoire en :

volatile char; qui est un type de base du C.
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 7:50

Merci à vous, la mémoire me revient,

@stef : je peux créer bien mes functions globales dans les .h , mais j'ai fait un test, si je mets la function au dessus du main, elle est aussi visible comme l'include. Puisque le code est procédural.

@bfg : pour les directives pré compilo, je connaissais sauf cette syntaxe la dernière je ne pensais pas que l'on pouvait cumuler, "  #define vs8   volatile s8  "

Je ne vois pas tout de suite un besoin pour moi mais si tu en parles, c'est que tu as du faire des choses dans tes jeux.

Merci à vous deux.
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 8:25

Autre chose : L'affichage des Sprites : (je ne sais pas quel methode Bfg a choisi)

Il y a l'exemple de sonic dans sgdk qui utilise SPR_initSprite

Et l'exemple du site https://code.google.com/p/sgdk/wiki/Sprites

qui utilise : SPR_setSprite et aussi  VDP_setSpriteP si on veut utiliser une structure.


Entre l'exemple de Sonic dans sample et le site quel est le best practice ? ou quels sont les différences ? je n'ai pas vu de Deprecated method dans l'une ou l'autre.
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par bfg Dim 23 Nov 2014 - 9:14

pckid a écrit:

@bfg : pour les directives pré compilo, je connaissais sauf cette syntaxe la dernière je ne pensais pas que l'on pouvait cumuler, "  #define vs8   volatile s8  "


Moi non plus je l'ai découvert avec ton include :) :)
bfg
bfg
Patient contaminé

Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 9:29

pour les sprites tu as utilisé quelle methode ?

Car des fois on t'annonce du code , mais on te dit pas qu'il faut déclarer un fichier res

tu passes par une structure ? ou tu es passé par l'exemple du sonic du source comme moi à l'époque.

ps : sonic.size>>8  le >> signifie quoi ?
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par vingazole Dim 23 Nov 2014 - 9:52

>> : décalage binaire vers la droite  (de 8 positions dans ton exemple); ça revient à diviser par 2^8=256.

Si je ne me trompe pas c'est un décalage logique pour un type unsigned et un décalage arithmétique pour un signed (conservation du bit de signe).


Dernière édition par vingazole le Dim 23 Nov 2014 - 9:54, édité 1 fois
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par ichigobankai Dim 23 Nov 2014 - 9:54

normalement les >> ou << sont pour des décalage de bits (vers la gauche ou la droite)

edit. grillé par vingazole ^^
ichigobankai
ichigobankai
Patient incurable

Masculin Nombre de messages : 1922
Age : 44
Localisation : 49
Date d'inscription : 04/04/2011

https://www.2minds.fr

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Dim 23 Nov 2014 - 10:57

pckid a écrit:Autre chose : L'affichage des Sprites : (je ne sais pas quel methode Bfg a choisi)

Il y a l'exemple de sonic dans sgdk qui utilise SPR_initSprite

Et l'exemple du site https://code.google.com/p/sgdk/wiki/Sprites

qui utilise : SPR_setSprite et aussi  VDP_setSpriteP si on veut utiliser une structure.


Entre l'exemple de Sonic dans sample et le site quel est le best practice ? ou quels sont les différences ? je n'ai pas vu de Deprecated method dans l'une ou l'autre.

Je te conseille d'utiliser la méthode utiliser dans l'exemple sonic (avec SPR_initSprite(..)) qui correspond à la nouvelle méthode et qui exploite le nouveau Sprite Engine. L'idée c'est de déclarer une ressource de type SPRITE (là encore tu peux t'inspirer du fichier .res de l'exemple sonic) et ensuite le sprite engine gère pas mal de choses pour toi, contrairement à l'ancienne méthode qui est beaucoup plus bas niveau (celle expliquée dans le wiki, je dois vraiment le mettre à jour :-/).
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 11:05

@Stef :
Merci beaucoup, sur le wiki j'arrivais pas comprendre pourquoi mon code ne marchait pas.

Pour les ressources graphiques on est obligé d'utiliser le fichier gfx.res ?
ou l'on peut faire son : custom.res ?

Bien sur j'ai testé mais pas trop concluant, je vois pas ou cela bloque
(pourquoi je fais cela, car j'ai peur qu'il aille chercher le gfx du compilo)


Edit : j'ai reussi a créer un fichier ressource de type "pckid.res" et "pckid.h" et cela marche !
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Dim 23 Nov 2014 - 12:14

Oui j'allais te répondre, tu peux utiliser n'importe quel nom tant que l'extension est bien .res (le makefile se sert de l'extension pour reconnaitre ton fichier de ressource).
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par r_songo Dim 23 Nov 2014 - 12:23

J'avais une question pour effectuer un scrolling d'un background. Il y a bien des méthodes, via line, tile, plan.

Par contre je n'ai pas vu d'option concernant la répétition de celui ci.
Ex: mon background fait 320x224. Je veux que quand mon personnage avance je souhaiterai que tout se décale sur la gauche et que la partie qui vient de disparaitre apparaisse à droite.

Est ce possible ?
r_songo
r_songo
Patient contaminé

Masculin Nombre de messages : 863
Age : 47
Localisation : Nancy
Date d'inscription : 18/11/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Dim 23 Nov 2014 - 13:06

Par défaut c'est ce que ça fait mais il faut que la taille de ton décor soit aligné sur la taille horizontal du plan (32, 64 ou 128 tiles de largeur selon le réglage du VDP).
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 13:17

Il y a des tutos pour la MAP ? 

Sinon normalement on affiche pas le fond d'un decor avec un simple PNG ? en conception on doit pas aussi faire une MAP pour les background ?

Merci à vous.
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par r_songo Dim 23 Nov 2014 - 14:10

Stef quand tu dis largeur c'est width ?
r_songo
r_songo
Patient contaminé

Masculin Nombre de messages : 863
Age : 47
Localisation : Nancy
Date d'inscription : 18/11/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par pckid Dim 23 Nov 2014 - 15:02

r_songo

Tu as compris ces fonctions dans le jeu sonic ?

Code:

// init sprites engine
    SPR_init(256);

    // set all palette to black
    VDP_setPaletteColors(0, palette_black, 64);

// VDP process done, we can re enable interrupts
    SYS_enableInts();

// ici si j'enleve les interruptions cela change rien pour le fade in , il le fait quand même.
// fade in (disable interrupts because of the passive fade in)
    SYS_disableInts();
    VDP_fadeIn(0, (3 * 16) - 1, palette, 20, FALSE);
    SYS_enableInts();
pckid
pckid
Infirmier

Masculin Nombre de messages : 3739
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Dim 23 Nov 2014 - 18:13

Sinon normalement on affiche pas le fond d'un decor avec un simple PNG ? en conception on doit pas aussi faire une MAP pour les background ?

Merci à vous.

Pour le moment je ne gère pas encore les fichiers map (ce que j'ajouterai plus tard) mais ce n'est pas un problème car avec une simple grande image Rescomp génère tout ça pour toi (la map interne et la base de tiles).
Ensuite à partir du code tu peux accéder à cette map Wink


r_songo a écrit:Stef quand tu dis largeur c'est width ?

oui c'est bien ça Wink
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Sgdk - Sega Megadrive / Genesis Development Kit Empty Re: Sgdk - Sega Megadrive / Genesis Development Kit

Message par Stef Dim 23 Nov 2014 - 18:21

pckid a écrit:r_songo

Tu as compris ces fonctions dans le jeu sonic ?

Code:

// init sprites engine
    SPR_init(256);

    // set all palette to black
    VDP_setPaletteColors(0, palette_black, 64);

// VDP process done, we can re enable interrupts
    SYS_enableInts();

// ici si j'enleve les interruptions cela change rien pour le fade in , il le fait quand même.
// fade in (disable interrupts because of the passive fade in)
    SYS_disableInts();
    VDP_fadeIn(0, (3 * 16) - 1, palette, 20, FALSE);
    SYS_enableInts();

Pourtant c'est documenté :p
Tu peux ignorer les disableInts() & enableInts(), disons que ce sont des sécurités pour éviter d'accèder au VDP depuis la VINT lorsqu'on y accède depuis le code principal.
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 03/04/2007

Revenir en haut Aller en bas

Page 1 sur 34 1, 2, 3 ... 17 ... 34  Suivant

Revenir en haut

- Sujets similaires

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