PDA

Ver la versión completa : Problemilla con modlib y wav's



the_goulin
14/06/2005, 20:35
Hola

Bueno, estaba intentando probar modlib y no hay manera, no se que debo estar haciendo mal pero no consigo cargar el mod... :loco: :loco:

si alguien me hecha un cable, el codigo que utilizo es este:



MODPlay mp;
#define FLIP_LCD \
GpSurfaceFlip(&gpDraw[nflip++]); \
nflip &= 0x01;


void GpMain(void *arg)
{

int iLoad=0;
MODPlay_Init(&mp);
iLoad=MODPlay_Load(&mp, "GP:\\GPMM\\FANTASI.MOD");
MODPlay_SetPlayFreq ( &mp, 11025 );

GpLcdSurfaceGet(&gpDraw[0], 0);
GpLcdSurfaceGet(&gpDraw[1], 1);
GpSurfaceSet(&gpDraw[0]);
MODPlay_SetStereo ( &mp, TRUE );
nflip = 1;
MODPlay_Start(&mp) ;
while(1)
{
if (iLoad<0)
GpTextOut(NULL, &gpDraw[nflip], 120, 180, (char*)"Error: El mod no cargo!", 0x00);
FLIP_LCD;
}
}

ademas de probarlo en gp:\gpmm\ tambien he probado en gp:\ en mayusculas en minusculas, vamos todo lo que se me ha ocurrido y nada, siempre lo mismo "Error: El mod no cargo!".

tambien tengo problemillas con los wav's que supongo que seran una chorrada, pero no consigo que suenen nitidos los escucho con Ruidos ¿alguna sugerencia?

Saludillos y gracias de antemano.
The_Goulin

oankali
15/06/2005, 09:31
Prueba así, aunque no lo he probado.
Lo único que he hecho es inicializar el sonido, cosa que no has hecho.
Por cierto, en mi web encontrarás ModTester, un pequeño programa para probar la librería de CHN y también los WAV.



MODPlay mp;
#define FLIP_LCD \
GpSurfaceFlip(&gpDraw[nflip++]); \
nflip &= 0x01;


void GpMain(void *arg)
{

int iLoad=0;

GpLcdSurfaceGet(&gpDraw[0], 0);
GpLcdSurfaceGet(&gpDraw[1], 1);
GpSurfaceSet(&gpDraw[0]);
nflip = 1;

GpPcmInit(PCM_S22, PCM_16BIT);
MODPlay_Init(&mp);
MODPlay_SetPlayFreq ( &mp, 11025 );
MODPlay_SetStereo ( &mp, TRUE );

iLoad = MODPlay_Load(&mp, "GP:\\GPMM\\FANTASI.MOD");
if (iLoad != 0)
GpTextOut(NULL, &gpDraw[nflip], 120, 180, "Error: El mod no cargo!", 0x00);
else
{
GpTextOut(NULL, &gpDraw[nflip], 120, 180, "Todo correcto!", 0x00);
MODPlay_Start(&mp) ;
}
FLIP_LCD;

while(1);
}

the_goulin
15/06/2005, 11:12
Oankali estuve mirando tu el código te tu programa pero no encontré el momento en el que cargas los mod's ... ¿es necesario hacer un GpPcmInit antes de utilizar esta librería?, en la documentación no pone nada de esto...

Los wav's los ejecuto sin problemas a excepción de los ruiditos que he comentado, pienso que el problema puede ser el programa con el que convierto los sonidos a WAV es el dbpowerconverter (o algo asi) que programa y que parámetros usas tu para que suene bien?

1000 gracias por tu ayuda :) :brindis: cuando pueda pruebo el código, ahora mismo no estoy en casa.

aps!, una pregunta mas, hay alguna manera de probar los códigos en el geepee, por que yo creo una SMC virtual meto los ficheros fxe y el mod y no hay manera que el emulador me lo ejecute.

kmkzk
15/06/2005, 13:31
Me suena que antes de llamar a la funcion que carga el modulo, hay que hacer GpFatInit(). Me suena, pero no estoy seguro del todo X)
Respecto a lo de probar estas cosas en el geepee, nunca he conseguido hacerlo funcionar con una SMC virtual :(
Saludos

the_goulin
15/06/2005, 14:10
bueno, probare con el GpFatInit :) y con el GpPcmInit, espero tener suerte, es una lastima que con el emu los ficheros SMC no funcionen bien por que es un fastidio cada vez que compilo conectar la gp para pasarle el programita :P y encima para que me de error.

oankali
15/06/2005, 21:47
Este medio día mientras me estaba empezando a dormir para mi siestecita me he dado cuenta que tal como dice kmkzk, te falta inicializar la SMC con GpFatInit().
Vaya descuido!! :rolleyes:

La librería libmodplay está basada en el SDK oficial, o sea que hace falta inicializar el audio con GpPcmInit().

Los mod's los cargo en la línea 195. Hasta pone 'Load MOD' un poco antes!!

Finalmente decir que la SMC virtual funciona bien con el emu. Pero si recuerdo bien, algunas versiones del emu daban problemas. Yo tengo la última y me va perfecto. Eso sí, el sonido no funciona en el emu.
Por cierto, si usais el SDK para Windows el sonido funciona (no sé para la libmodplay) y la SMC virtual también.

K-teto
16/06/2005, 02:01
Ntchs, eso me pasa por no estar delante del ordenador todo el dia...
Te lo iba a decir, pero creo que paso, lo unico que te falta es el GpFatInit() para poder tratar con la smc...

the_goulin
16/06/2005, 07:25
Pues nada, que sigue sin funcionar... ¿?

he puesto el GpFatInit y el GpPcmInit y no hay manera, me sigue dando que el mod no carga ¿se os ocurre algo mas?


Saludillos y gracias (agradecido soy eh? jejjejeje)
The_Goulin

adjunto el codigo:




MODPlay mp;
#define FLIP_LCD \
GpSurfaceFlip(&gpDraw[nflip++]); \
nflip &= 0x01;


void GpMain(void *arg)
{

int iLoad=0;

GpFatInit();
GpLcdSurfaceGet(&gpDraw[0], 0);
GpLcdSurfaceGet(&gpDraw[1], 1);
GpSurfaceSet(&gpDraw[0]);
nflip = 1;

GpPcmInit(PCM_S22, PCM_16BIT);
MODPlay_Init(&mp);
MODPlay_SetPlayFreq ( &mp, 11025 );
MODPlay_SetStereo ( &mp, TRUE );

iLoad = MODPlay_Load(&mp, "GP:\\GPMM\\FANTASI.MOD");
if (iLoad != 0)
GpTextOut(NULL, &gpDraw[nflip], 120, 180, "Error: El mod no cargo!", 0x00);
else
{
GpTextOut(NULL, &gpDraw[nflip], 120, 180, "Todo correcto!", 0x00);
MODPlay_Start(&mp) ;
}
FLIP_LCD;

while(1);
}

oankali
16/06/2005, 08:07
No veo nada extraño.
Yo verificaría que el archivo se llama realmente fantasi.mod y que se encuentra en donde tu pones.
Luego verificaría que ese mod es compatible con la librería, no vaya a tener algo raro. Para probarlo puedes utilizar ModTester.
A parte de eso, no veo qué puede fallar.
¿Te da algun aviso en la compilación?

the_goulin
16/06/2005, 09:15
pues no, error de compilacion no da ninguno...

el archivo fantasi.mod lo probe con tu programa y funciona :'( y ya no tengo ni idea que puede ser.

Os adjunto el codigo fuente por si alguien me hace el favor de probarlo, el mod no puedo adjuntarlo por que no lo tento aqui, lo tengo en casa.

¿seria buena idea abrirlo con el sdk copiar el contenido en memoria y pasarle el puntero a modlib?

Saludillos
The_Goulin :loco: :loco: :loco: :loco: :loco: :loco: :loco:

oankali
16/06/2005, 10:00
Me cago'n el jilicabroputo SDK, ya he encontrado lo que era. Eso sí, me ha costado!!.
El 'GP:...' tiene que estar en minúsculas, o sea 'gp:...', el resto da igual.
Otra cosa a tener en cuenta!!!

SDK :canon2:

the_goulin
16/06/2005, 10:20
Dios!!! DIOSSSS!!!!

no jodas! ...

bueno, ahora no puedo probarlo pero me fio de ti ;)

GRACIAAAAASSSSSSS, ^_^ cuando llegue a casa lo pruebo , me hago de tu club de fans pero que ya xDDD ¿donde hay que firmar? :brindis: :brindis: :arriba:

kmkzk
16/06/2005, 10:52
Me cago'n el jilicabroputo SDK, ya he encontrado lo que era. Eso sí, me ha costado!!.
El 'GP:...' tiene que estar en minúsculas, o sea 'gp:...', el resto da igual.
Otra cosa a tener en cuenta!!!

SDK :canon2:
Ufff, malditos fallos que nisiquiera son fallos... las horas que nos hacen perder tonterias como esta y lo dificil que es encontrarlas!!

oankali
16/06/2005, 11:00
A mí lo que me extraña es que no lo haya detectado antes.
Supongo que cada vez que he necesitado un path, previamente copiaba otro y como que el primero debió estar bien, pues todos acabaron estando bien.

The_goulin, espero que sea esto, porque no lo he probado con la GP32, solo con el emulador hasta que me ha funcionado cambiando solo eso, dos letras.

K-teto
16/06/2005, 16:34
Tocate los webos XDDDDDD
Pos yo me cago en los fallos que no son fallos y que nos hacen perder horas...

the_goulin
16/06/2005, 22:22
:) :) :) :) :) :)

FUNCIONA

ya estoy escuchando el :musico: mod :musico:

pues nada, que muchas gracias, seguramente este fallo yo solo no lo ubiera sacado, ^_^

ale dentro de unos dias version del GpSnake con sonido ... o eso espero


Saludillos,
The_Goulin :brindis: