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

+19
Orion_
Zarnal
IK+
drludos
Hpman
fourchette
vingazole
fanoplusplus64K
GliX
Igor
troudki
TotOOntHeMooN
ichigobankai
upsilandre
Stef
F.L
uran
Tryphon
Monos
23 participants

Page 17 sur 18 Précédent  1 ... 10 ... 16, 17, 18  Suivant

Aller en bas

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

Message par Tryphon Jeu 10 Oct 2019 - 19:09

Ben déjà, si c'est un define, c'est bizarre...

Tryphon
Docteur *
Docteur *

Nombre de messages : 26166
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

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

Message par Hpman Jeu 10 Oct 2019 - 19:21

Bah non, c'est un registre HW.  scratch

Sans macro ça donne:

bidule=(~((*(volatile u8*)0x800177)))>>4;
avatar
Hpman
Patient contaminé

Masculin Nombre de messages : 611
Age : 44
Localisation : Lille
Date d'inscription : 22/08/2014

Revenir en haut Aller en bas

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

Message par Tryphon Jeu 10 Oct 2019 - 20:09

En effet c'est très bizarre...
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par Stef Ven 11 Oct 2019 - 10:25

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
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Tryphon Ven 11 Oct 2019 - 10:26

C'est aussi ce que j'ai pensé, mais là c'est non-signé non ?
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par Stef Ven 11 Oct 2019 - 10:31

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
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Tryphon Ven 11 Oct 2019 - 11:01

Ah ouais bien vu !
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par Stef Ven 11 Oct 2019 - 11:12

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
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Hpman Ven 11 Oct 2019 - 12:30

Le type/syntaxe exact est:

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é  study
avatar
Hpman
Patient contaminé

Masculin Nombre de messages : 611
Age : 44
Localisation : Lille
Date d'inscription : 22/08/2014

Revenir en haut Aller en bas

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

Message par Stef Ven 11 Oct 2019 - 12:34

Alors là oui il y a un problème Confused

T'as essayé de virer ce
Code:
__attribute__((packed,aligned(2)))
à tout hasard pour voir si c'est lui qui confuse le compilo (peu de chances mais bon) ?

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
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Hpman Ven 11 Oct 2019 - 12:53

C'est idem, même en stockant dans un u8 de base.

J'ai tout cassé?  Sgdk - Sega Megadrive / Genesis Development Kit - Page 17 418468



Toujours mis le même nom, le pouvoir de la flemme  Mr. Green
avatar
Hpman
Patient contaminé

Masculin Nombre de messages : 611
Age : 44
Localisation : Lille
Date d'inscription : 22/08/2014

Revenir en haut Aller en bas

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

Message par Stef Ven 11 Oct 2019 - 14:57

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
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Hpman Ven 11 Oct 2019 - 15:31

La je suis sur le 6.3.0 du sgdk, ça me semble reproductible en collant ça dans n'importe quel projet:
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!  Sgdk - Sega Megadrive / Genesis Development Kit - Page 17 422508
avatar
Hpman
Patient contaminé

Masculin Nombre de messages : 611
Age : 44
Localisation : Lille
Date d'inscription : 22/08/2014

Revenir en haut Aller en bas

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

Message par Hpman Ven 11 Oct 2019 - 18:45

Bon ça à l'air d'être une histoire de type, on peut résoudre le pb avec un cast:

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  saispas


Dernière édition par Hpman le Ven 11 Oct 2019 - 20:52, édité 1 fois
avatar
Hpman
Patient contaminé

Masculin Nombre de messages : 611
Age : 44
Localisation : Lille
Date d'inscription : 22/08/2014

Revenir en haut Aller en bas

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

Message par Invité Ven 11 Oct 2019 - 20:42

Pas mal de chose sont en UB en C , alors rien ne m'étonne de ce coté là MDR
avatar
Invité
Invité


Revenir en haut Aller en bas

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

Message par Stef Dim 13 Oct 2019 - 22:21

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 Confused
Stef
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par drludos Mar 22 Oct 2019 - 0:05

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 Wink - 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 ! Wink
avatar
drludos
Patient contaminé

Masculin Nombre de messages : 230
Age : 42
Localisation : 34
Date d'inscription : 12/10/2017

Revenir en haut Aller en bas

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

Message par Tryphon Mar 22 Oct 2019 - 0:26

Perso je trouve que c'est sympa de voir ce genre de retour thumleft
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par Stef Mar 22 Oct 2019 - 10:26

@drludos> Waaaa merci à toi pour cette super pub thumleft
Franchement ça fait trop plaisir à lire amoureux 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 MDR
Stef
Stef
Infirmier

Masculin Nombre de messages : 4990
Age : 42
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

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

Message par Tryphon Mar 22 Oct 2019 - 10:29

Clairement, moi non plus (en 1h je génère à peine mes sprites MDR)
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par drludos Mar 22 Oct 2019 - 22:55

@Stef a écrit:@drludos> Waaaa merci à toi pour cette super pub thumleft
Franchement ça fait trop plaisir à lire amoureux 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 MDR

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 Wink

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/
avatar
drludos
Patient contaminé

Masculin Nombre de messages : 230
Age : 42
Localisation : 34
Date d'inscription : 12/10/2017

Revenir en haut Aller en bas

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

Message par GliX Lun 16 Déc 2019 - 18:18

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
avatar
GliX
Patient en incubation

Masculin Nombre de messages : 9
Age : 43
Localisation : Paris
Date d'inscription : 27/01/2018

Revenir en haut Aller en bas

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

Message par Tryphon Lun 16 Déc 2019 - 19:58

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
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par GliX Lun 16 Déc 2019 - 21:17

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 !!  bounce
avatar
GliX
Patient en incubation

Masculin Nombre de messages : 9
Age : 43
Localisation : Paris
Date d'inscription : 27/01/2018

Revenir en haut Aller en bas

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

Message par GliX Lun 16 Déc 2019 - 23:32

Parfait pas de perte de Framerate et implémentation simplissime,
Merci encore Tryphon  Wink

https://youtu.be/aYJ9FJjkV6Y
avatar
GliX
Patient en incubation

Masculin Nombre de messages : 9
Age : 43
Localisation : Paris
Date d'inscription : 27/01/2018

Revenir en haut Aller en bas

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

Message par jungrock Jeu 18 Juin 2020 - 10:31

J'arrive après la guerre mais pour cet effet là en particulier (tapis qui tourne), un palette swap aurait pas été + simple ?
avatar
jungrock
Patient en incubation

Masculin Nombre de messages : 13
Age : 32
Localisation : CHALON SUR SAONE
Date d'inscription : 10/01/2019

Revenir en haut Aller en bas

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

Message par GliX Jeu 18 Juin 2020 - 23:15

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.  :)
avatar
GliX
Patient en incubation

Masculin Nombre de messages : 9
Age : 43
Localisation : Paris
Date d'inscription : 27/01/2018

Revenir en haut Aller en bas

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

Message par guiguidu48 Mer 29 Juil 2020 - 21:15

Ha ben je vois qu il ya jungrock ici  MDR MDR

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
guiguidu48
Patient contaminé

Masculin Nombre de messages : 586
Age : 42
Localisation : Lozère
Date d'inscription : 25/11/2012

Revenir en haut Aller en bas

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

Message par Tryphon Mer 29 Juil 2020 - 21:26

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
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

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

Message par jungrock Mer 29 Juil 2020 - 21:44

Je précise, que cet instru est coupé par les SFX quelle que soit la chaine sur laquelle je joue le SFX !
avatar
jungrock
Patient en incubation

Masculin Nombre de messages : 13
Age : 32
Localisation : CHALON SUR SAONE
Date d'inscription : 10/01/2019

Revenir en haut Aller en bas

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

Message par Tryphon Mer 29 Juil 2020 - 22:14

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.
Tryphon
Tryphon
Docteur *
Docteur *

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

Revenir en haut Aller en bas

Page 17 sur 18 Précédent  1 ... 10 ... 16, 17, 18  Suivant

Revenir en haut


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