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 15 sur 18
Page 15 sur 18 • 1 ... 9 ... 14, 15, 16, 17, 18
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'est quoi hard ?
main sur MD ne prend pas d'arguments. En C sur ordi, tu peux passer argv et argc qui permettent de récupérer des paramètres éventuellement passés en ligne de commande (donc superflu sur MD).
main sur MD ne prend pas d'arguments. En C sur ordi, tu peux passer argv et argc qui permettent de récupérer des paramètres éventuellement passés en ligne de commande (donc superflu sur MD).
Tryphon- Docteur *
- Nombre de messages : 26166
Date d'inscription : 23/07/2016
Re: Sgdk - Sega Megadrive / Genesis Development Kit
hard permet de savoir si la console a redémarré au niveau du hard ou du soft.
1 = hard reset
0 = soft reset
Cela permet de faire une condition si des variables doivent être modifiées ou non par exemple :
1 = hard reset
0 = soft reset
Cela permet de faire une condition si des variables doivent être modifiées ou non par exemple :
- Code:
// main function
extern int main(u16 hard);
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
c'est quoi l'interet de la passer en param si c'est déjà dans une variable externe (globale tres certainement) ?
Re: Sgdk - Sega Megadrive / Genesis Development Kit
shingosama a écrit:hard permet de savoir si la console a redémarré au niveau du hard ou du soft.
1 = hard reset
0 = soft reset
Cela permet de faire une condition si des variables doivent être modifiées ou non par exemple :
- Code:
// main function
extern int main(u16 hard);
Mais ce n'est pas standard !
La "fonction" main n'est pas une fonction normale, elle obéit au standard du C, tu ne peux pas lui passer de paramètres (pas plus que tu ne peux l'appeler d'ailleurs je crois) (en tout cas j'ai jamais essayé).
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:Actually that is wanted, so you can preserve some information (as hi score) on soft-reset.
But i can understand it can be problematic...
You have a way to detect it so you can reset some variables.
If you declare the main method like this :
- Code:
int main(int param)
{
...
}
the param value can be used to detect if you are on hard or soft reset.
1 = hard reset
0 = soft reset.
Je n'ai fais que reprendre ce qu'à dit @Stef sur gendev.spritesmind.net....
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
je continue a dire que je ne vois pas l'interet d'y passer des param ^^
tu saves ton etat de hard/soft reset dans une var (globale), et ensuite au debut du main, tu clear tout ou en partie la ram (contenant score & cie) en esquivant celle de la var reset hard/soft.
Sinon tu peux aussi en avoir rien à scouer, utiliser une SRAM, sauvegarder quand c'est nécessaire et raz la ram au debut et recharger les données de la sram.
tu saves ton etat de hard/soft reset dans une var (globale), et ensuite au debut du main, tu clear tout ou en partie la ram (contenant score & cie) en esquivant celle de la var reset hard/soft.
Sinon tu peux aussi en avoir rien à scouer, utiliser une SRAM, sauvegarder quand c'est nécessaire et raz la ram au debut et recharger les données de la sram.
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ah oui, c'est vrai que ça peut fonctionner dans ce sens :p
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Bah les param, c'est pour limiter l'usage de variables globales... ^^ichigobankai a écrit:je continue a dire que je ne vois pas l'interet d'y passer des param ^^
tu saves ton etat de hard/soft reset dans une var (globale)
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
je ne pense pas qu'il soit a qq bytes de ram près
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ca reste pas standard il me semble.. Ca m'étonnerait que GCC accepte ça. Peut-être que le vieux GCC qu'utilisait Stef le prenait, mais plus la version actuelle (la 5 je crois) ?
De toutes façons il faudrait un type dans la déclaration :
int main(int hard)
De toutes façons il faudrait un type dans la déclaration :
int main(int hard)
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
Si je m'abuse, en C, main() n'est pas la fonction de départ d'un programme, mais plutôt _start() voir même execute() ... Du coup, Stef à peut-être réimplémenté main() pour son usage, vu qu'on ne va pas passer de paramètres à une ROM sur Megadrive.Tryphon a écrit:Ca reste pas standard il me semble.. Ca m'étonnerait que GCC accepte ça. Peut-être que le vieux GCC qu'utilisait Stef le prenait, mais plus la version actuelle (la 5 je crois) ?
De toutes façons il faudrait un type dans la déclaration : int main(int hard)
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
TotOOntHeMooN a écrit:Si je m'abuse, en C, main() n'est pas la fonction de départ d'un programme, mais plutôt _start() voir même execute() ... Du coup, Stef à peut-être réimplémenté main() pour son usage, vu qu'on ne va pas passer de paramètres à une ROM sur Megadrive.Tryphon a écrit:Ca reste pas standard il me semble.. Ca m'étonnerait que GCC accepte ça. Peut-être que le vieux GCC qu'utilisait Stef le prenait, mais plus la version actuelle (la 5 je crois) ?
De toutes façons il faudrait un type dans la déclaration : int main(int hard)
C'est intéressant. Je farfouille dans les spécifications du langage (c'est aride )
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
TotOOntHeMooN a écrit:Si je m'abuse, en C, main() n'est pas la fonction de départ d'un programme, mais plutôt _start() voir même execute() ... Du coup, Stef à peut-être réimplémenté main() pour son usage, vu qu'on ne va pas passer de paramètres à une ROM sur Megadrive.Tryphon a écrit:Ca reste pas standard il me semble.. Ca m'étonnerait que GCC accepte ça. Peut-être que le vieux GCC qu'utilisait Stef le prenait, mais plus la version actuelle (la 5 je crois) ?
De toutes façons il faudrait un type dans la déclaration : int main(int hard)
C'est exactement ça...
main(..) c'est un point d'entrée pour les programme type "ligne de commande" mais ça n'a rien de standard sur l'execution d'un binaire Par défaut le point d'entrée c'est _start en effet, et c'est SGDK qui va ensuite appeler la fonction 'main' (que j'ai formaté selon "mes besoins") pour que ça soit plus simple pour l'utilisateur lambda qui a l'habitude d'avoir une fonction 'main' comme point d'entrée
Si vous êtes intéresser par le vrai point d'entrée du code, il faut regarder le fichier boot.s (dans le répertoire src/boot aui est automatiquement créé par SGDK). SGDK le génère car il fait tout un tas de chose avant d'appeler 'main(..)' :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
T'as une référence là-dessus ? J'ai rien trouvé dans les spécifications du C ANSI...
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 dirais que oui, du coup...
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 complètement :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Une petite question technique sur le driver XGM: comment peut-on modifier, via le code, le volume de la musique ?
J'ai vu dans le doc la possibilité de pouvoir changer le tempo, mais pas le volume.
Je précise que je n'ai que le fichier musical au format ".vgm", donc à priori pas moyen de le modifier (sauf si vous connaissez un outil pour changer le volume d'un fichier vgm directement).
Merci pour vos lumières !
J'ai vu dans le doc la possibilité de pouvoir changer le tempo, mais pas le volume.
Je précise que je n'ai que le fichier musical au format ".vgm", donc à priori pas moyen de le modifier (sauf si vous connaissez un outil pour changer le volume d'un fichier vgm directement).
Merci pour vos lumières !
drludos- Patient contaminé
- Nombre de messages : 247
Age : 44
Localisation : 34
Date d'inscription : 12/10/2017
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Moi j'en ai une autre de question :
Serait-ce possible d'avoir une version native de SGDK pour Linux, car je commence à en avoir ras le cul profond de Windows 10.
Serait-ce possible d'avoir une version native de SGDK pour Linux, car je commence à en avoir ras le cul profond de Windows 10.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
drludos a écrit:Une petite question technique sur le driver XGM: comment peut-on modifier, via le code, le volume de la musique ?
J'ai vu dans le doc la possibilité de pouvoir changer le tempo, mais pas le volume.
Je précise que je n'ai que le fichier musical au format ".vgm", donc à priori pas moyen de le modifier (sauf si vous connaissez un outil pour changer le volume d'un fichier vgm directement).
Merci pour vos lumières !
Je n'avais pas vu cette question mais tu ne peux pas changer le volume avec le driver XGM. C'est une feature qu'il ne supporte pas hélas (peut être dans une prochaine version du driver, mais c'est quelque chose d'assez compliqué à faire).
Et si tu as le fichier VGM alors ça sera compliqué de changer le volume (il n'existe pas d'outils pour ça autant que je connaisse).
Serait-ce possible d'avoir une version native de SGDK pour Linux, car je commence à en avoir ras le cul profond de Windows 10.
Dans le README tu as un lien vers une version linux de SGDK :
https://github.com/kubilus1/gendev
Par contre je ne sais pas à quel point elle est à jour par rapport à la version windows (bon après c'est juste les binaires qui changent, pour le reste c'est identique à la version windows)...
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Il est assez vraisemblable que la version Windows tourne avec wine.
Perso, je développerais pas sur MD avec Linux. Y'a de très bons outils, c'est incontestable, mais je teste avec plusieurs émulateurs, et certains tournent pas, ou mal (version obsolète, config chiante...) sous Linux.
Perso, je développerais pas sur MD avec Linux. Y'a de très bons outils, c'est incontestable, mais je teste avec plusieurs émulateurs, et certains tournent pas, ou mal (version obsolète, config chiante...) sous Linux.
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 je suis un peu d'accord (pour ça que je reste sous windows même si c'est chiant pour plein de raisons). Mais à partir du moment où tu arrives à faire tourner Genesis Plus GX correctement, alors c'est bon :) C'est un excellent émulateur et pour le coup c'est assez difficile de le faire marcher sous windows (ou alors en version dépouillée et incomplète) :)
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Il est disponible dans RetroArch non ?!
Le problème avec cette version de Linux, c'est que comme tu la souligné, c'est pas souvent mis à jour et bien avant de développer sur SGDK, j'avais tenté X fois de la compiler sous Debian 9 sans succès, car j'avais une sale erreur du compilateur.
Je reconnais que sur Windows t'as énormément d'outils pour travailler, mais cet OS me gonfle sérieusement, surtout le 10. J'ai fais la mise à jour October lundi soir, depuis plus rien ne marche correctement. Quand je veux venir sur gamopat, le site se charge une fois sur trois, YouTube rame et plante etc.
Alors du coup, je pense retourner sur Windows 7, bien que ça me fait chier, car du coup je ne profite pas des dernières nouveautés.
Le problème avec cette version de Linux, c'est que comme tu la souligné, c'est pas souvent mis à jour et bien avant de développer sur SGDK, j'avais tenté X fois de la compiler sous Debian 9 sans succès, car j'avais une sale erreur du compilateur.
Je reconnais que sur Windows t'as énormément d'outils pour travailler, mais cet OS me gonfle sérieusement, surtout le 10. J'ai fais la mise à jour October lundi soir, depuis plus rien ne marche correctement. Quand je veux venir sur gamopat, le site se charge une fois sur trois, YouTube rame et plante etc.
Alors du coup, je pense retourner sur Windows 7, bien que ça me fait chier, car du coup je ne profite pas des dernières nouveautés.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
@Stef tu pourrais m'expliquer comment se compile SGDK ? Étant donné que je m'y connais plutôt sur Linux, je me demande si je ne pourrais pas moi-même le compiler pour ce système et tenir à jour un repo.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef a écrit:drludos a écrit:Une petite question technique sur le driver XGM: comment peut-on modifier, via le code, le volume de la musique ?
J'ai vu dans le doc la possibilité de pouvoir changer le tempo, mais pas le volume.
Je précise que je n'ai que le fichier musical au format ".vgm", donc à priori pas moyen de le modifier (sauf si vous connaissez un outil pour changer le volume d'un fichier vgm directement).
Merci pour vos lumières !
Je n'avais pas vu cette question mais tu ne peux pas changer le volume avec le driver XGM. C'est une feature qu'il ne supporte pas hélas (peut être dans une prochaine version du driver, mais c'est quelque chose d'assez compliqué à faire).
Et si tu as le fichier VGM alors ça sera compliqué de changer le volume (il n'existe pas d'outils pour ça autant que je connaisse).
Merci pour ta réponse Stef!
Pour compenser, j'ai mis tous les effets sonores à fond, du coup ça règle mon problème de différence de volume entre la musique et les effets :). C'est vrai que le changement de volume serait pratique ceci dit, mais bon, je ne me plaint pas, car le driver XGM est vraiment excellent : le fait de pouvoir jouer 4 sons en simultané plus la musique, avec gestion de priorité des sons, et le tout avec deux fonctions toutes simples à appeler, c'est génial, surtout comparés aux autres consoles :).
(cf mes galères avec le driver SNESmod :))
En plus, j'ai finalement eu une réponse du musicien (j'utilise un VGM en Creative Commons, mais je l'avais contacté par courtoisie) et il m'a carrément fourni le fichier deflemask!
drludos- Patient contaminé
- Nombre de messages : 247
Age : 44
Localisation : 34
Date d'inscription : 12/10/2017
Re: Sgdk - Sega Megadrive / Genesis Development Kit
- Code:
le fait de pouvoir jouer 4 sons en simultané plus la musique,
A confirmer, mais il me semble que tu ne peux jouer que 3 sons et non 4 si ton VGM utilise du PCM la piste FM6. En ce qui me concerne je n'utilise pas le CH1 pour les sons avec ce genre de VGM car j'ai constaté quelques soucis du genre : quand je coupe le son pour CH1, ça coupait aussi la piste FM6 du VGM...
fourchette- Patient en incubation
- Nombre de messages : 84
Age : 54
Localisation : L'ion
Date d'inscription : 10/10/2009
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Pour jouer le PCM ça utilise le canal FM6 donc soit tu as du FM sur le canal FM6, soit tu as du PCM. En réalité tu as tout intérêt à ne pas utiliser de FM du tout sur le canal FM6 et le dédier à 100% au PCM (surtout qu'avec le driver XGM ça te donne 4 canaux PCM).
Souvent la musique utilise aussi du PCM (pour les beats en général) du coup je conseille de n'utiliser que 3 canaux pour les bruitages (les canaux 2, 3 et 4) et ainsi laisser le premier canal PCM libre pour la musique. Mais rien ne t'empêche d'utiliser les 4 canaux PCM pour les bruitages, c'est juste que ça coupera le PCM de la musique si il y en a au même instant. Tu as aussi une gestion de priorité qui peut t'aider pour ça..
Souvent la musique utilise aussi du PCM (pour les beats en général) du coup je conseille de n'utiliser que 3 canaux pour les bruitages (les canaux 2, 3 et 4) et ainsi laisser le premier canal PCM libre pour la musique. Mais rien ne t'empêche d'utiliser les 4 canaux PCM pour les bruitages, c'est juste que ça coupera le PCM de la musique si il y en a au même instant. Tu as aussi une gestion de priorité qui peut t'aider pour ça..
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
shingosama a écrit:@Stef tu pourrais m'expliquer comment se compile SGDK ? Étant donné que je m'y connais plutôt sur Linux, je me demande si je ne pourrais pas moi-même le compiler pour ce système et tenir à jour un repo.
En fait je n'ai pas bien compris ce que tu voulais dire, plus haut j'ai posté ce lien :
https://github.com/kubilus1/gendev
Qui permet d'avoir SGDK sous linux. Il me semble (car je ne l'ai jamais utilisé à titre perso) que ça te permet d'installer (ou compiler) facilement GCC avec un target 68k (voir le contenu de https://github.com/kubilus1/gendev/tree/master/gen_gcc), et de compiler les différents outils de SGDK. Ensuite la lib SGDK se compile comme sous windows (avec GCC) dés que ton GCC est fonctionnel
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
J'ai une question de résolutions sur sgdk
Si j'ai bien compris la Megadrive en Pal affiche 320x240
Et 320x224 en 60hz, je pensais le contraire du aux bandes noires.
Aujourd'hui il faut partir sur le 60hz soit 320x224, que se passe t'il si on passe en 50hz ?
Quelle résolution choisissez vous pour vos jeux. ?
Merci
Si j'ai bien compris la Megadrive en Pal affiche 320x240
Et 320x224 en 60hz, je pensais le contraire du aux bandes noires.
Aujourd'hui il faut partir sur le 60hz soit 320x224, que se passe t'il si on passe en 50hz ?
Quelle résolution choisissez vous pour vos jeux. ?
Merci
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Page 15 sur 18 • 1 ... 9 ... 14, 15, 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 15 sur 18
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum