:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > Tutoriels

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 19/09/2006, 00h30   #1
Bobby Sixkilla
Maître Chinpoko-extra-mon
 
Date d'inscription: 10/11/2005
Localisation: Palaiseau (Rive sud)
Messages: 6 466
Voir les codes amis Nintendo DS
Par défaut Apex Sound System (AAS)

Apex Sound System (AAS)

Auteur : YodaJr

A la demande de nes, je vais exposer tout ce que je sais sur cette librairie sonore. Tout sera bien sur orienté HAM vu que j'utilise cette lib.

D'abord recupérer la lib ici.

Pour se faciliter la vie :
  • Créer un dossier AAS et un dossier sfx dans le dossier du projet. (attention, jamais d'espace dans les dossiers).
  • Dans le dossier sfx, mettre tous les wav et les mods.
  • Dans le dossier AAS, mettre les dossiers AASDocs et LibAAS extraits de l'archive.
  • Il faut aussi extraire le fichier Conv2AAS.exe correspondant au systeme que l'on utilise et le mettre dans le dossier du projet.
  • Toujours dans le dossier du projet, creer un fichier convert.bat avec dedans :
Code:
@echo off
conv2aas sfx
pause
Ensuite le makefile :

Au OFILES ajoutez AAS_Data.o comme ceci :

Code:
OFILES += main.o AAS_Data.o
Ensuite dans VHAM > Project > Makefile > Files To Compile
Faites Add > AAS_Data.s
Oui à la question sur le rechargement.

Vérifiez également que les fichiers AAS_Data.h (et .s) sont bien dans le répertoire racine du projet (n'oubliez pas qu'ils sont générés par le convert.bat)

Ajoutez en dessous du OFILES :
Code:
ADD_LIBS += $(VHAM_CURPROJECT)/AAS/LibAAS/libAAS.a 
INCDIR := $(INCDIR) -I $(VHAM_CURPROJECT)/AAS/LibAAS -I $(VHAM_CURPROJECT)/AAS/LibAAS/LowLevelAccess
On continue par le main.c (ou autre header c'est vous qui voyez) :

D'abord on ajoute ca tout en haut :
Code:
#include <AAS.h> 
#include <AAS_Mixer.h> 
#include "AAS_Data.h"  //généré par le convert.bat
Ensuite après le ham_Init() :
Code:
AAS_ShowLogo();
ham_ResetAll(); //je nettoye après le logo d'AAS (pas obligatoire, mais il merde un peu ce logo)
Pour l'affichage du logo AAS (obligatoire pour ecouter les mods sur hardware)

Ca continue juste avant le lancement du VBL:
Code:
ham_StartIntHandler(INT_TYPE_TIM1,(void*)AAS_Timer1InterruptHandler); //lancement de l'interruption d'AAS
AAS_SetConfig(AAS_CONFIG_MIX_24KHZ,AAS_CONFIG_CHANS_4,AAS_CONFIG_SPATIAL_MONO,AAS_CONFIG_DYNAMIC_OFF); //la config d'AAS
ham_StartIntHandler(INT_TYPE_VBL,(void *)&fonction_vbl); //c'est parti!
Bon pour la config :

AAS_CONFIG_MIX_xxKHZ est pour le mixage je présume, plus le chiffre est grand, plus le mixage est de qualité mais au dépend des ressources (xx varie de : 8, 12, 16, 20, 24, 28, 32)

AAS_CONFIG_CHANS_x est bien sur pour le nombre de canaux : 4 ou 8 (pareil pour les ressources)

AAS_CONFIG_SPATIAL_x pas compliqué : MONO ou STEREO

AAS_CONFIG_DYNAMIC_OFF alors lui on peut le mettre sur ON mais je ne sait pas à quoi il sert


Pour le VBL, on peut y mettre ou pas le AAS_DoWork()... il ne semble pas utile (moi je le met pas)... mais bon, mettez le et passez le en commentaire (//) il pourra peut ete servir à l'ocasion

Et enfin lancez convert.bat pour génerer le AAS_Data.h

Voila c'est fini pour la préparation, ouf...


Maintenant l'utilisation :

Pour savoir comment appeler vos sons et musiques, regardez dans le fichier AAS_Data.h, tout y est (par exemple je peut voir que mon intro.mod, je dois l'appeler AAS_DATA_MOD_intro)

Pour jouer un mod, c'est :
Code:
AAS_MOD_Play(nom_du_mod)
Avec dans mon exemple AAS_DATA_MOD_intro comme nom
Et bien sur les commandes associées :
Code:
AAS_MOD_Stop()
AAS_MOD_Pause()
AAS_MOD_Resume()
AAS_MOD_SetVolume(vol) //vol allant de 0 à 256
Toutes ces commandes interviennent sur le mod qui est en train de jouer bien sur


Bon les sons :

Code:
AAS_SFX_Play(0,64,22050,AAS_DATA_SFX_START_tir,AAS_DATA_SFX_END_tir,AAS_NULL);
Le premier paramètre, c'est le canal (voir avec la config du début, si on a défini 4 canaux, on peut jouer 4 sons à la fois)
Le 2eme c'est le volume (de 0 à 64)
Le 3eme c'est la fréquence du wav (de 1 à 65535)
Les 4eme et 5eme c'est le nom du son, la en l'occurence le wav s'appelait tir.wav )
Le dernier reste en NULL et c'est très bien comme ca

Avec comme d'hab :
Code:
AAS_SFX_Stop(canal)
AAS_SFX_Resume(canal)
AAS_SFX_SetVolume(canal,vol) //vol varie de 0 à 64
canal designe le canal qui joue le son que l'on veut

Voila, c'est tout ce que je sais, si vous avez des questions, gbadev... Non je déconne, posez les ici.

Dernière modification par Bobby Sixkilla ; 19/09/2006 à 00h37.
Bobby Sixkilla est déconnecté   Réponse avec citation

Publicité

Vieux 19/09/2006, 09h39   #2
Alekmaul
Codeur Archéologue
 
Date d'inscription: 10/11/2005
Localisation: Blois (France)
Messages: 660
Par défaut

Un chose à ajouter, cette lib ne compile pas "en direct" avec le devkitpro r19, ce dernier était eabi et non la lib.
Je ne sais pas si une version patchée eabi circule sur le Net.
__________________
Mon site http://www.portabledev.com
L'émulation sur GBA, c'est ->ICI ! et sur DS, c'est ->ICI!
Alekmaul est déconnecté   Réponse avec citation
Vieux 19/09/2006, 10h58   #3
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

il y a un path disponible sur devkitpro il me semble pour patcher un elf en eabi
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 05/11/2007, 20h05   #4
Bobby Sixkilla
Maître Chinpoko-extra-mon
 
Date d'inscription: 10/11/2005
Localisation: Palaiseau (Rive sud)
Messages: 6 466
Voir les codes amis Nintendo DS
Par défaut

Pour télécharger la lib, il faut écrire à l'adresse email indiquée sur le site officiel. James me l'a envoyé le soir même.
__________________
"Un pour l'argent, deux pour le spectacle et trois pour le cailloux" un putain d'énergumène
Bobby Sixkilla est déconnecté   Réponse avec citation
Vieux 05/11/2007, 21h44   #5
Foxy
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 367
Par défaut

Pour convertir la lib AAS en eabi 4, j'avais posté un petit tuto:
http://www.playeradvance.org/forum/s...ead.php?t=6222
__________________
Mes releases persos, etc...
Foxy est déconnecté   Réponse avec citation
Vieux 05/11/2007, 22h21   #6
Alekmaul
Codeur Archéologue
 
Date d'inscription: 10/11/2005
Localisation: Blois (France)
Messages: 660
Par défaut

Citation:
Envoyé par Foxy Voir le message
Pour convertir la lib AAS en eabi 4, j'avais posté un petit tuto:
http://www.playeradvance.org/forum/s...ead.php?t=6222
Oui, je m'en souviens.
Mais bon, quel avantage à passer au dessus du devkit R18 pour la GBA ? il y en a un ???
Perso, je continue d'utiliser le devkit r18 pour mes releases GBA (en plus, je me souviens qu'NRX avait eu des pbs avec des releases GBA compilées en R19 à l'époque lorsque je mettais au point Lindsi Luna Blast).
__________________
Mon site http://www.portabledev.com
L'émulation sur GBA, c'est ->ICI ! et sur DS, c'est ->ICI!
Alekmaul est déconnecté   Réponse avec citation
Vieux 06/11/2007, 00h03   #7
Foxy
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 367
Par défaut

Ben l'interet c'est de pouvoir utiliser le même kit pour compiler sur GBA, DS et PSP.
Maintenant c'est sur que si tu dev que sur la GBA, l'interet est plutot limité.
__________________
Mes releases persos, etc...
Foxy est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h10.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince