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 3 sur 34
Page 3 sur 34 • 1, 2, 3, 4 ... 18 ... 34
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Logiquement, en réduisant la fréquence, tu réduis aussi les besoins en buffers ..C'est pas vraiment la réduction de la fréquence qui diminuera le lag du buffering, au contraire même en fait, avec des tailles de buffer identique ça sera bien pire avec du 8 Khz ! Pour réduire le lag, il faut impérativement réduire la taille des buffers, mais là oui après ça peut poser le problème du PCM miss :-/
Sinon merci pour les précisions ..
Je t'ai parlé de ça, car j'ai lu dans les coms, une personne te demandant si c'était possible d'avoir des trucs gérés en plus, c'est pour ça .Réellement y'a pas grand chose à ajouter de plus, puis là je bouffe quasi les 8 ko dispo avec le code et les datas déjà donc ça va être compliqué de faire de grosses modfis :p Peut être des améliorations mineures mais pas de gros changements...
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef, dans rescomp au niveau du sprite tu parles du système de collision (rectangle, circle) etc..
Est ce que ca fonctionne ? Si oui comment ?
Est ce que ca fonctionne ? Si oui comment ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:un driver c'est bien et superbe avancée, car cela lit la musique !
mais je n'ai pas trouvé le moyen d’écrire la musique en ce format là.
On peut facilement faire du midi en xgm ? wav en xgm ?
Mais heu, je n'avais pas déjà répondu a cette question ou peut être sur un autre forum ? Actuellement pour composer tu dois passer par un tracker, pour la MD tu as VGM Maker et Deflemask. Une fois ta musique composée tu peux l'exporter au format VGM qui pourra être directement lu par le driver XGM :)
Et en attendant tu peux utiliser des VGM de musique déjà existantes
philip a écrit:
grand merci stef, mais suis je passé à côté des versions 0.98 et 0.99 ?
Non je suis passé directement a la version 1.00 ;-)
j'en avais marre de ces 0.9xx
Logiquement, en réduisant la fréquence, tu réduis aussi les besoins en buffers ..
Sinon merci pour les précisions
En fait j'ai 4 buffers de 256 octets (soit 1ko).
- A 14 khz ça représente donc 1/14e de seconde, soit environ 4.3 frames à laquelle tu soustrais la frame de lecture actuelle soit ~3.5 frames de lag
- A 8khz ça fait 1/8e de seconde soit 7.5 frames donc ~6.7 frames de lag, quasiment le double !
Pour réduire le lag il me faudrait utiliser des buffers plus petits (genre 128 ou 64 octets) mais c'est plus pénible à gérer !
Je t'ai parlé de ça, car j'ai lu dans les coms, une personne te demandant si c'était possible d'avoir des trucs gérés en plus, c'est pour ça
Oui mais il me semble que c'était par rapport à l'activation / désactivation du mode DAC du FM6 en fonction de l'utilisation du PCM, ça c'est un petit truc et donc dans le domaine du possible ;-)
Et puis y'a toujours moyen d'améliorer le code, car effectivement je suis pas vraiment a l'aise avec l'assembleur z80... Il est sur que quelqu'un qui maitrise bien ce cpu pourrait faire mieux (je pense qu'il est possible d'avoir 16 Khz par exemple même si pour des raisons de pratique on voudra rester en dessous des 15360 Hz).
Après ajouter un gros truc comme le support de l'enveloppe ou modification de pitch, là c'est autre histoire... impossible sans compromis (réduction du nombre de channel par exemple).
Stef, dans rescomp au niveau du sprite tu parles du système de collision (rectangle, circle) etc..
Est ce que ca fonctionne ? Si oui comment ?
Hélas c'est une partie qui n'est pas encore implémentée... réellement tu as juste l'information de "bounding box" mais il n'y pas le code pour gérer la collision (c'est à toi de le faire).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef a écrit:pckid a écrit:un driver c'est bien et superbe avancée, car cela lit la musique !
mais je n'ai pas trouvé le moyen d’écrire la musique en ce format là.
On peut facilement faire du midi en xgm ? wav en xgm ?
Mais heu, je n'avais pas déjà répondu a cette question ou peut être sur un autre forum ? Actuellement pour composer tu dois passer par un tracker, pour la MD tu as VGM Maker et Deflemask. Une fois ta musique composée tu peux l'exporter au format VGM qui pourra être directement lu par le driver XGM :)
Et en attendant tu peux utiliser des VGM de musique déjà existantes
Merci Stef,
J'ai regardé Deflemask , cela semble pas mal du tout, je connais des musiciens qui peuvent me faire des son midis ou wav , sais tu s'il existe à partir de fichier déjà fini. Pour une création de jeu original le moyen de convertir le midi, ou wav vers xgm ?
Car je me vois pas faire de la musique en plus du dev. Et j'aimerais proposé un jeu original et non une adaptation après mes tests.
Sais tu comment font les autres developper dans le cas d'un nouveau jeu ? les best practise ?
merci l'ami
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
C'était ça ma question avec le 8khz, gérer des buffers plus petit, donc réduire de facto le lag .En fait j'ai 4 buffers de 256 octets (soit 1ko).
- A 14 khz ça représente donc 1/14e de seconde, soit environ 4.3 frames à laquelle tu soustrais la frame de lecture actuelle soit ~3.5 frames de lag
- A 8khz ça fait 1/8e de seconde soit 7.5 frames donc ~6.7 frames de lag, quasiment le double !
Pour réduire le lag il me faudrait utiliser des buffers plus petits (genre 128 ou 64 octets) mais c'est plus pénible à gérer !
Mais je comprends pas pourquoi c'est plus compliqué ??
A moins que tout ton drivers soit basé sur les 14 khz, et que tu te sens surement pas de tout refaire avec de nouveaux timings .
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Ouais mais la réduction de la taille de buffer n'a rien a voir avec la fréquence en fait, ce qui me limite c'est clairement la latence (pour du 8khz il faut réduire plus que pour du 14khz). Plus je la réduis et plus j'ai de risque de "under fill"...
Pour faire un buffer circulaire, 4 segments est un minimum, 3 irait également mais ce n'est plus un simple masque binaire. De même 256 comme taille de segment c'est très pratique car aucune opération nécessaire, ça rentre pile poil dans un registre 8 bits... Puis aussi repasser à 8 khz maintenant ben faut tout réécrire ou presque ;-) Et pour moi 8 Khz c'est définitivement trop bas en terme de qualité.
Pour faire un buffer circulaire, 4 segments est un minimum, 3 irait également mais ce n'est plus un simple masque binaire. De même 256 comme taille de segment c'est très pratique car aucune opération nécessaire, ça rentre pile poil dans un registre 8 bits... Puis aussi repasser à 8 khz maintenant ben faut tout réécrire ou presque ;-) Et pour moi 8 Khz c'est définitivement trop bas en terme de qualité.
Dernière édition par Stef le Ven 28 Nov 2014 - 9:32, édité 2 fois
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:
Merci Stef,
J'ai regardé Deflemask , cela semble pas mal du tout, je connais des musiciens qui peuvent me faire des son midis ou wav , sais tu s'il existe à partir de fichier déjà fini. Pour une création de jeu original le moyen de convertir le midi, ou wav vers xgm ?
Si tu veux utiliser du WAV, pas besoin du driver XGM pour ça, tu peux juste utiliser le driver 4 channels PCM + volume.
En gros tu utilise un 1 channel pour la musique et les 3 autres pour les bruitages, le problème c'est qu'utiliser un WAV pour la musique ça consomme beaucoup de rom !
Pour ce qui est de la conversion de MIDI en VGM / XGM, je pense pas qu'il existe d'outil vraiment fiable pour ça.
Au mieux tu peux brancher un clavier midi sur ton pc et composer avec VGM Maker (il supporte les claviers MIDI), peut être que Deflemask le supporte aussi.
Car je me vois pas faire de la musique en plus du dev. Et j'aimerais proposé un jeu original et non une adaptation après mes tests.
Sais tu comment font les autres developper dans le cas d'un nouveau jeu ? les best practise ?
La partie sonore est toujours la plus complexe. Et les solutions c'est soit full PCM (WAV) et avoir une grosse rom, soit utiliser le driver VGM (et maintenant XGM) et de composer sa musique avec VGM Maker ou Deflemask et exporter en VGM (les SFX restent au format WAV).
La dernière solution c'est le driver Echo : http://segaretro.org/Echo
Il permet de prendre un fichier XM en entrée. Ce driver a l'avantage d'être bien documenté mais l'inconvénient d'être (je trouve) assez complexe d'utilisation.
Dernière édition par Stef le Ven 28 Nov 2014 - 9:27, édité 1 fois
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci stef , j ai vraiment compris l integration du son.
je vais demander a mon pote s il serait fait ça.
je me demande comme rayxamber a fait pour le son avec les jeux de touko.
encore merci stef.
je vais demander a mon pote s il serait fait ça.
je me demande comme rayxamber a fait pour le son avec les jeux de touko.
encore merci stef.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef, pour la musique en wav.
Il faut être en 8khz ou autre , mono, stereo ?
Il faut être en 8khz ou autre , mono, stereo ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Le pauvre avec toutes ces questions, il faut mettre les réponses dans une Faq .
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui. Ca serait pas mal.pckid a écrit:Le pauvre avec toutes ces questions, il faut mettre les réponses dans une Faq .
Et que l'on créait des samples.
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
r_songo a écrit:Stef, pour la musique en wav.
Il faut être en 8khz ou autre , mono, stereo ?
En fait ouais, faudrait une FAQ ou un truc du genre...
Aussi je vous conseille de lire le fichier rescomp.txt qui explique le fonctionnement des différentes ressources dans SGDK dont le WAV fait partie.
Voici la description de la ressource WAV :
- Code:
WAV
---
Take a .wav sound file as input and transform it to in binary format usable with one of the SGDK PCM driver.
Syntax:
WAV name file [driver [outrate]]
name variable name
file path of the .wav file (will be converted to 8 bits signed PCM)
driver specify the Z80 driver to use:
0 (default) = Z80_DRIVER_PCM
Single channel 8 bits signed sample driver.
It can play a sample (8 bit signed) from 8 Khz up to 32 Khz rate.
<b>Input:</b> any WAV at 8000 / 11025 / 13400 / 16000 / 22050 / 32000 Hz
Method to use: SND_startPlay_PCM(..)
1 = Z80_DRIVER_2ADPCM
2 channels 4 bits ADPCM sample driver.
It can mix up to 2 ADCPM samples at a fixed 22050 Hz rate.
<b>Input:</b> best to use WAV file at 22 Khz.
Method to use: SND_startPlay_2ADPCM(..)
2 = Z80_DRIVER_4PCM
4 channels 8 bits signed sample driver.
It can mix up to 4 samples (8 bit signed) at a fixed 16 Khz rate.
<b>Input:</b> best to use WAV file at 16 Khz.
Method to use: SND_startPlay_4PCM(..)
3 = Z80_DRIVER_4PCM_ENV
4 channels 8 bits signed sample driver with volume support.
It can mix up to 4 samples (8 bit signed) at a fixed 16 Khz rate.
with volume support (16 levels du to memory limitation).
<b>Input:</b> best to use WAV file at 16 Khz.
Method to use: SND_startPlay_4PCM_ENV(..)
4 = Z80_DRIVER_VGM
VGM music driver.
It supports PCM SFX (8 bit unsigned) at a fixed 8 Khz rate.
<b>Input:</b> 8 bits signed PCM at 8000 Hz
Method to use: SND_playSfx_VGM(..)
outrate output PCM rate (only used for Z80_DRIVER_PCM driver)
By default the default WAV output rate is used.
En fait le 3ème paramètre (driver) permet de spécifier quel driver on veut utiliser pour jouer le fichier WAV.
Si vous utilisez le driver VGM il faut mettre la valeur 4 et ainsi automatiquement rescomp va convertir le fichier WAV dans le bon format (8 Khz) pour ce driver. Je me rend compte que le fichier n'est pas à jour car on peut mettre la valeur 5 pour utiliser le WAV avec le driver XGM (conversion en 14 Khz).
Ex:
WAV explodeSfx "res/explode.wav" 4
Va te permettre de jouer le son explode.wav à travers le driver VGM :
- Code:
SND_playSfx_VGM(explodeSfx, sizeof(explodeSfx));
Et si tu déclares la ressource WAV ainsi :
WAV explodeSfx "res/explode.wav" 5
Tu peux l'utiliser mais avec le driver XGM ce coup ci :
- Code:
SND_setPCM_XGM(64, explodeSfx, sizeof(explodeSfx));
SND_startPlayPCM_XGM(64, 1, SOUND_PCM_CH1);
Avec le driver XGM tu dois passer par une phase où tu déclares les PCM que tu vas utiliser (en leur affectant un id) et ensuite tu utilises cette id pour jouer le sample. Les id de 0 à 63 sont réservés aux musiques alors que les id 64 à 255 sont réservés aux bruitages.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Quel mine d'information , incroyable,
je vais prendre un peu de temps pour monter un petit site qui regroupe cela, car ca va nous aider.
Merci
je vais prendre un peu de temps pour monter un petit site qui regroupe cela, car ca va nous aider.
Merci
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Trés bonne idée. Stef avait répondu a mes questions en mp
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef, y a t'il moyen de gérer le volume de la musique et des son avec le drivers XGM ?
Car ma musique est trop forte et on n'entend pas le son.
Car ma musique est trop forte et on n'entend pas le son.
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
r_songo a écrit:Stef, y a t'il moyen de gérer le volume de la musique et des son avec le drivers XGM ?
Car ma musique est trop forte et on n'entend pas le son.
Hélas ce n'est pas possible... Sur le YM2612 c'est plus complexe qu'un simple volume globale à gérer et dans le driver XGM j'ai omis ce genre de fonctionnalité pour des raisons de performance. En gros il faut ajuster le niveau de la musique au moment de la composition, et idem pour les SFX, faut amplifier un peu les samples pour augmenter leur volume. De manière générale il faut toujours éviter de composer avec le volume max sur le YM2612 car le PSG, ou le PCM risque d'être plus faible.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Quand tu paramètres un type de scroll, ligne/tile/full, cela s'applique aux 2 plans ??
Si c'est le cas tu es obligé aussi de gérer les plans de façons identiques alors ??
Exemple, le plan B tu veux faire du scroll à la ligne et sur le A du full, tu configures le VDP pour le scroll à la ligne, mais du coup le plan A passe aussi en scroll ligne ??
Si c'est le cas tu es obligé aussi de gérer les plans de façons identiques alors ??
Exemple, le plan B tu veux faire du scroll à la ligne et sur le A du full, tu configures le VDP pour le scroll à la ligne, mais du coup le plan A passe aussi en scroll ligne ??
Dernière édition par TOUKO le Dim 30 Nov 2014 - 20:19, édité 1 fois
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Tu as vu son code sprite touko, il peut dans ses deux fond, les faire bouger indépendamment, afin de faire ralentir le b et rendre le A plus rapide.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
nan ma question n'a rien à voir avec ça
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
TOUKO a écrit:Quand tu paramètres un type de scroll, ligne/tile/full, cela s'applique aux 2 plans ??
Si c'est le cas tu est obligé aussi de géré les plans de façons identiques alors ??
Exemple, le plan B tu veux faire du scroll à la ligne et sur le a du full, tu configure le VDP pour le scroll à la ligne, mais du coup le plan A passe aussi en scroll ligne ??
Oui le réglage est global, du coup tout passe effectivement en ligne... c'est vrai qu'à ce niveau, le HDMA est plus pratique.
C'est quand même une bonne invention ce HDMA (il faut leur reconnaitre ça) car l'implémentation reste très simple mais permet une foule de chose bien pratique !
La MD inclue un table de scrolling H dont la SNES n'a même pas besoin grâce au HDMA.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Donc tu es obligé de gérer ta table de scroll pour le plan A, comme si il était à la ligne ??
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui en effet tu dois gérer la plan A à la ligne également mais n'oublie pas que tu as le VRAM Fill, il peut bien aider dans ce genre de cas.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef,
C'est toi qui gère l'assembleur dans le compilo ? pour chaque function C crée ? ou non ? comment çà marche ?
C'est toi qui gère l'assembleur dans le compilo ? pour chaque function C crée ? ou non ? comment çà marche ?
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Effectivement, c'est pas con, du coup tu n'as pas de table à maintenir en ram pour le plan A ..Stef a écrit:Oui en effet tu dois gérer la plan A à la ligne également mais n'oublie pas que tu as le VRAM Fill, il peut bien aider dans ce genre de cas.
Invité- Invité
Re: Sgdk - Sega Megadrive / Genesis Development Kit
TOUKO a écrit:
Effectivement, c'est pas con, du coup tu n'as pas de table à maintenir en ram pour le plan A ..
Exactement, surtout que pour le coup il est vraiment gratos (tu le lances après les DMA en vblank).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:Stef,
C'est toi qui gère l'assembleur dans le compilo ? pour chaque function C crée ? ou non ? comment çà marche ?
Je ne comprends pas ce que tu veux dire ? Le code C est compilé en binaire (et donc passe par une phase de traduction C --> assembleur --> binaire). Et si tu veux tu peux aussi utiliser du code assembleur directement.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef, je viens de voir la 1.01
Dans les divers correctifs, y a t'il la possibilité de désactiver un sprite ?
Dans les divers correctifs, y a t'il la possibilité de désactiver un sprite ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
ah non ct vraiment du petit correctif.. Pour le disable sprite ça sera hélas que dans la prochaine version.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Mais en fait je viens de me rendre compte, tu as déjà une méthode qui te permet de désactiver plus ou moins un sprite, j'avais oublié cette possibilité. En gros de base SGDK se charge de déterminer tout seul si le sprite est visible à un instant donné mais pour des raisons de performance tu peux forcer la visibilité (ou pas) de ton sprite.
En utilisant :
Tu forces ton sprite à être invisible et du coup il est "désactivé" en quelque sorte
En utilisant :
- Code:
SPR_setNeverVisible(&sprites[0], FALSE);
Tu forces ton sprite à être invisible et du coup il est "désactivé" en quelque sorte
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Et pk ne pas le mettre juste hors de l'écran sur Y pour le cacher ??
Invité- Invité
Page 3 sur 34 • 1, 2, 3, 4 ... 18 ... 34
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 3 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum