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 17 sur 18
Page 17 sur 18 • 1 ... 10 ... 16, 17, 18
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ben déjà, si c'est un define, c'est bizarre...
Tryphon- Docteur *
- Nombre de messages : 26166
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Bah non, c'est un registre HW.
Sans macro ça donne:
bidule=(~((*(volatile u8*)0x800177)))>>4;
Sans macro ça donne:
bidule=(~((*(volatile u8*)0x800177)))>>4;
Hpman- Patient contaminé
- Nombre de messages : 679
Age : 47
Localisation : Lille
Date d'inscription : 22/08/2014
Re: Sgdk - Sega Megadrive / Genesis Development Kit
En effet c'est très bizarre...
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
C'est normal si ta variable bidule est signée dans quel cas le C va utiliser un shift arithmétique (avec conservation du signe) et du coup l'ordre des opérations importe peu (même résultat), par contre si bidule n'est pas signée dans ce cas il ne devrait pas changer l'ordre des opération car :
- Code:
(~0)>>4 = 00001111b alors que ~(0>>4)=11111111b
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'est aussi ce que j'ai pensé, mais là c'est non-signé non ?
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
Ben on sait pas ce qu'est bidule, même si le registre lu est lui non signé, GCC va devoir caster dans le type destination, donc si bidule est signé (ici on ne sait pas) alors le code généré par GCC est normal.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ah ouais bien vu !
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
Pour autant dans le code assembleur généré on voit que GCC stocke le résultat dans une variable 8 bit (si c'est bien le code qui correspond), et du coup j'aurai tendance à penser que bidule était déclaré en u8 (donc non signé) car c'est assez rare d'utiliser du s8.. Après ça arrive qu'on utilise du 'char' sans vraiment penser au fait que c'est du signé derrière. Enfin seul Hpman sait :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Le type/syntaxe exact est:
Donc non signé
- Code:
#define REGB_KICKSDATA (*(volatile u8*)0x800177)
typedef union __attribute__((packed,aligned(2))) _ctrl {
u16 all;
struct {
u8 kicks;
u8 base;
};
} _ctrl;
_ctrl ctrlP2;
//////////////////////
ctrlP2.kicks=(~(REGB_KICKSDATA))>>4;
Donc non signé
Hpman- Patient contaminé
- Nombre de messages : 679
Age : 47
Localisation : Lille
Date d'inscription : 22/08/2014
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Alors là oui il y a un problème
T'as essayé de virer ce
A priori ici ça ne sert à rien (ça sera aligné sur du word et ça sera bien packed vu tes champs).
Edit:
Tiens par contre je ne savais pas qu'on pouvait donner le même nom à un union/struct et à un typedef, j'ai toujours différencié les 2..
T'as essayé de virer ce
- Code:
__attribute__((packed,aligned(2)))
A priori ici ça ne sert à rien (ça sera aligné sur du word et ça sera bien packed vu tes champs).
Edit:
Tiens par contre je ne savais pas qu'on pouvait donner le même nom à un union/struct et à un typedef, j'ai toujours différencié les 2..
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'est idem, même en stockant dans un u8 de base.
J'ai tout cassé?
Toujours mis le même nom, le pouvoir de la flemme
J'ai tout cassé?
Toujours mis le même nom, le pouvoir de la flemme
Hpman- Patient contaminé
- Nombre de messages : 679
Age : 47
Localisation : Lille
Date d'inscription : 22/08/2014
Re: Sgdk - Sega Megadrive / Genesis Development Kit
ah bah oui y'a un problème clairement, tu es sur quelle version de GCC ? mais là vraiment un bug pareil c'est trop étrange. A tout hasard t'as pas fait une erreur sur la définition de ton u8 ? Car bon un bug pareil sur GCC ça me semble un peu gros :-/
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
La je suis sur le 6.3.0 du sgdk, ça me semble reproductible en collant ça dans n'importe quel projet:
Testé vite fait sur l'ancien 2.95.2, code sensiblement différent (travaille avec un long) mais même souci, il not après le shift.
GCC rends l'argent!
- Code:
#define REGB_KICKSDATA (*(volatile u8*)0x800177)
u8 duh;
void derp() {
duh=(~(REGB_KICKSDATA))>>4;
}
Testé vite fait sur l'ancien 2.95.2, code sensiblement différent (travaille avec un long) mais même souci, il not après le shift.
GCC rends l'argent!
Hpman- Patient contaminé
- Nombre de messages : 679
Age : 47
Localisation : Lille
Date d'inscription : 22/08/2014
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Bon ça à l'air d'être une histoire de type, on peut résoudre le pb avec un cast:
Ca reste tout de même un peu contre intuitif, tout est de type u8 mais il perd le type en route. Pourtant tout le code est généré en .b
- Code:
duh=(u8)(~REGB_KICKSDATA)>>4;
Ca reste tout de même un peu contre intuitif, tout est de type u8 mais il perd le type en route. Pourtant tout le code est généré en .b
Dernière édition par Hpman le Ven 11 Oct 2019 - 20:52, édité 1 fois
Hpman- Patient contaminé
- Nombre de messages : 679
Age : 47
Localisation : Lille
Date d'inscription : 22/08/2014
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Pas mal de chose sont en UB en C , alors rien ne m'étonne de ce coté là
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Souvent le C promu le type en int en interne pendant les opérations (pour des raisons de performance), mais ici en partant d'un u8 pour aller vers du u8 c'est effectivement très bizarre
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
En espérant pas faire un "hors sujet":
Quand je boucle un projet, j'aime bien faire un petit article "post mortem" dessus. Et comme mes 3 jeux Mega Drive fait avec SGDK sont à présent disponibles sur cartouche, j'ai écrit un article sur "Faire un jeu Megadrive en 2019". Mais j'aurai aussi pu l'appeler "SGDK c'est trop génial" car l'article essaie de montrer à quel point SGDK est puissant tout en restant simple d'accès - merci encore Stef pour tout ton travail!
Bref, c'est en anglais, et vous pouvez le lire ici:
https://www.gamasutra.com/blogs/DoctorLudos/20191019/352537/Making_a_SEGA_Mega_Drive__Genesis_game_today.php
C'est pas grand chose, mais si ça peut motiver des gens à se lancer dans la création de jeux MD avec SGDK je serais super content !
Quand je boucle un projet, j'aime bien faire un petit article "post mortem" dessus. Et comme mes 3 jeux Mega Drive fait avec SGDK sont à présent disponibles sur cartouche, j'ai écrit un article sur "Faire un jeu Megadrive en 2019". Mais j'aurai aussi pu l'appeler "SGDK c'est trop génial" car l'article essaie de montrer à quel point SGDK est puissant tout en restant simple d'accès - merci encore Stef pour tout ton travail!
Bref, c'est en anglais, et vous pouvez le lire ici:
https://www.gamasutra.com/blogs/DoctorLudos/20191019/352537/Making_a_SEGA_Mega_Drive__Genesis_game_today.php
C'est pas grand chose, mais si ça peut motiver des gens à se lancer dans la création de jeux MD avec SGDK je serais super content !
drludos- Patient contaminé
- Nombre de messages : 247
Age : 44
Localisation : 34
Date d'inscription : 12/10/2017
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Perso je trouve que c'est sympa de voir ce genre de retour
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
@drludos> Waaaa merci à toi pour cette super pub
Franchement ça fait trop plaisir à lire Je trouve tes minis jeux mignons et très addictifs :) et bravo pour avoir réussi à sortir quelque chose en 1h avec SGDK ! perso je ne suis pas certain d'en être capable
Franchement ça fait trop plaisir à lire Je trouve tes minis jeux mignons et très addictifs :) et bravo pour avoir réussi à sortir quelque chose en 1h avec SGDK ! perso je ne suis pas certain d'en être capable
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Clairement, moi non plus (en 1h je génère à peine mes sprites )
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
Stef a écrit:@drludos> Waaaa merci à toi pour cette super pub
Franchement ça fait trop plaisir à lire Je trouve tes minis jeux mignons et très addictifs :) et bravo pour avoir réussi à sortir quelque chose en 1h avec SGDK ! perso je ne suis pas certain d'en être capable
Avec plaisir, c'est plutôt mille merci à toi pour avoir créé un SDK aussi puissant et facile à utiliser ! :)
Et content que mes jeux te plaisent
Pour le jeu en 1h, j'avoue que c'est vraiment vraiment tendu ! Pour info Tryphon je n'ai du passer qu'environ 20 minutes sur les éléments graphiques (le poussin, l'oeuf, le panier), ce qui explique la simplicité et aussi l'absence de fond, afin d'avoir au moins 40 minutes de code. Mais avec le recul j'ai "mal géré mon temps", parce il m'a manqué 4-5 minutes à la fin pour faire un débug, et du coup la version "faite en 1h" du jeu n'est jouable que pendant 2-3 minutes, après tu as deux oeufs simultanés impossible à rattraper.
Et je vous rassure, pour la version finale du jeu (celle qui est sur la cartouche), j'ai pas compté les heures de travail, mais ça se chiffre en dizaines d'heures :p. Mais c'était intéressant comme expérience d'essayer de faire un "truc ludique" en si peu de temps.
D'ailleurs, si ça vous tente, la prochaine "0H Game Jam" a lieu le 28 octobre: http://0hgame.eu/
drludos- Patient contaminé
- Nombre de messages : 247
Age : 44
Localisation : 34
Date d'inscription : 12/10/2017
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Hello people,
Ca fait un bail que je ne suis pas venu dans le coin, j'ai une interrogation sur un truc plutôt courant sur console 8/16 bits: les tiles animées
J'ai un projet SGDK que je dépoussière un peu et j'aimerai pouvoir, à intervalle régulier, changer une tile de manière à cycler sur qq frames. A vue de nez, l'opération consisterait à switcher en VRAM la data à l'emplacement qui m’intéresse.
Quelques détails :
Je load le tileset de mon niveau avec un VDP_loadTileData, le tileset comprend - en plus du décors - toutes les frames de l'animation de la tile, je connais la position de la tile que je souhaite modifier mais je pense que charger une tile spécifique toutes les N frames n'est pas la bonne façon de faire, seulement je sais pas trop comme "swapper" les données en VRAM (sous peu que ça soit la meilleure solution)
Ma version de SGDK est la 1.33
Avez-vous des suggestions ou conseil à me donner ? :)
Muchas Garcias
PS: Pas trouvé de question similaire sur le forum, mais peut etre que je n'emploi pas les bons termes
Ca fait un bail que je ne suis pas venu dans le coin, j'ai une interrogation sur un truc plutôt courant sur console 8/16 bits: les tiles animées
J'ai un projet SGDK que je dépoussière un peu et j'aimerai pouvoir, à intervalle régulier, changer une tile de manière à cycler sur qq frames. A vue de nez, l'opération consisterait à switcher en VRAM la data à l'emplacement qui m’intéresse.
Quelques détails :
Je load le tileset de mon niveau avec un VDP_loadTileData, le tileset comprend - en plus du décors - toutes les frames de l'animation de la tile, je connais la position de la tile que je souhaite modifier mais je pense que charger une tile spécifique toutes les N frames n'est pas la bonne façon de faire, seulement je sais pas trop comme "swapper" les données en VRAM (sous peu que ça soit la meilleure solution)
Ma version de SGDK est la 1.33
Avez-vous des suggestions ou conseil à me donner ? :)
Muchas Garcias
PS: Pas trouvé de question similaire sur le forum, mais peut etre que je n'emploi pas les bons termes
Re: Sgdk - Sega Megadrive / Genesis Development Kit
- Code:
void VDP_loadTileData(const u32 *data, u16 index, u16 num, TransferMethod tm);
data c'est le tableau où t'as mis les données graphiques
index c'est l'endroit de ta tile en VRAM
num c'est le nombre de tiles à transférer
tm tu dois pouvoir y mettre du DMA_QUEUE
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
Merci Tryphon,
Ma théorie était que ré-utiliser VDP_loadTileData était potentiellement lourd à utiliser toutes les N frames mais le Direct Access Memory serait donc si rapide ?
Bon bon, solution très simple au final :)
Je teste ça asap !!
Ma théorie était que ré-utiliser VDP_loadTileData était potentiellement lourd à utiliser toutes les N frames mais le Direct Access Memory serait donc si rapide ?
Bon bon, solution très simple au final :)
Je teste ça asap !!
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Parfait pas de perte de Framerate et implémentation simplissime,
Merci encore Tryphon
https://youtu.be/aYJ9FJjkV6Y
Merci encore Tryphon
https://youtu.be/aYJ9FJjkV6Y
Re: Sgdk - Sega Megadrive / Genesis Development Kit
J'arrive après la guerre mais pour cet effet là en particulier (tapis qui tourne), un palette swap aurait pas été + simple ?
jungrock- Patient en incubation
- Nombre de messages : 15
Age : 35
Localisation : CHALON SUR SAONE
Date d'inscription : 10/01/2019
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui tout à fait Jungrock mais je swap déjà une couleur de ma palette pour un autre effet, pour le tapis il faudrait que je "sacrifie" 2 ou 3 couleurs de plus, je préfère éviter. :)
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ha ben je vois qu il ya jungrock ici
Question : j ai créé une musique vgm sur deflemask pour un shoot.
Quand le perso tire, le son du tir (fichier wav independant sur un autre canal que celui de la zik) coupe le son du channel fm6 du vgm.
Cela vient il du wav? Ou plutot du vgm (canal aigu)
Ou de la compilation sgdk ?
Merci par avance
Question : j ai créé une musique vgm sur deflemask pour un shoot.
Quand le perso tire, le son du tir (fichier wav independant sur un autre canal que celui de la zik) coupe le son du channel fm6 du vgm.
Cela vient il du wav? Ou plutot du vgm (canal aigu)
Ou de la compilation sgdk ?
Merci par avance
guiguidu48- Patient contaminé
- Nombre de messages : 661
Age : 44
Localisation : Lozère
Date d'inscription : 25/11/2012
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Non c'est normal. Seul le canal 6 peut sortir du PCM. Du coup faut que tu te démerdes dans Deflemask pour que le canal 6 joue un truc pas trop important...
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
Je précise, que cet instru est coupé par les SFX quelle que soit la chaine sur laquelle je joue le SFX !
jungrock- Patient en incubation
- Nombre de messages : 15
Age : 35
Localisation : CHALON SUR SAONE
Date d'inscription : 10/01/2019
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Un SFX en PCM est joué forcément sur la voix FM6. Il n'y a qu'une seule capable de jouer du PCM.
Les 4 "voix" PCM ne sont pas de vraies voix : elles sont multiplexées en software et jouées sur le FM6.
Les 4 "voix" PCM ne sont pas de vraies voix : elles sont multiplexées en software et jouées sur le FM6.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Page 17 sur 18 • 1 ... 10 ... 16, 17, 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 17 sur 18
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum