Bennu Game Development

Foros en Español => Plataformas => Dreamcast (homebrew) => Topic started by: Ryo Suzuki on August 19, 2017, 04:50:11 PM

Title: Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on August 19, 2017, 04:50:11 PM
Bueno, parece que ya funciona bien la reproducción de archivos de música ogg en el update del port de BennuGD de Indiket.

Si no recuerdo mal con el de Col Dev en el momento que inicalizabamos el ogg mediante el mod_dream.dll ya no se oían los FX de los wavs. O sea, teníamos musica ogg pero nos quedabamos sin los efectos de sonido (creo que era por el SDL mixer).

Ahora hemos conseguido que funcione porque aunque en las últimas versiones veníamos usando mikmod y ahora hemos metido el Fake_mixer que parece haber sido la clave:

https://github.com/arcadenea/fake_mixer/

El caso es que ahora parece funciona bastante bien. En Dreamcast no necesitamos precargar el asset, parece ser que lo coge y mete un thread y lo va tratando en streaming. Lo uso así:

if (os_id == 5); // si es Dreamcast
         ogg_init();
set_ogg_volume(255);
ogg_play("/cd/musica.ogg",1); // 0 es normal y 1 es loop
else // de lo contrario reproduzco normal para PC
         play_song(song,0);
end


Eso sí, las canciones ogg que les metamos no podemos ponerle mucha calidad ya que la pobre Dreamcast tiene que estar haciendo la descompresión y tratamiento del ogg "on the fly" y si no queremos que petardee o haya algúna cosa rara en la reproducción lo mejor es meterle una calidad no muy alta, como he hecho yo. De todas formas ta vereis que suenan de una manera decente, nos hace el servicio.

Y eso es todo. Creo que un gran avance poder usar ogg además de CDDA para tener la mezcla de música de fondo y efectos de sonido para poder hacer cualquier cosa que queramos.

Aquí os dejo un ejemplo con el código fuente y directamente el .CDI para correrlo en Dreamcast o en el emulador:

http://segasaturno.com/Minerva-238/archivos/OGG_BennuGD_test.7z

Ah! Los fx los he cogido de viejos juegos de Sonic, la música y la ilustración es de mi amigo Franikku:

https://soundcloud.com/fran-sebasti-n/breeze-hill

(http://www.segasaturno.com/portal/files/images/2/sonic_bennugd.jpg)

Un saludo!


P.D: El binario 1ST_READ.BIN del BennuGD de Indiket está actualizado a 18-08-2017. Es la última versión de hace solo unos días.
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Drumpi on August 26, 2017, 04:05:16 PM
Genial, pero ¿qué entiendes tu por "una calidad no muy alta"? Más que nada porque una Wiz puede con un OGG a 168Kbps 44.1Khz y en estéreo, y yo lo considero una calidad buena (o al menos, es la mínima que suelo usar :P).
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on August 31, 2017, 09:04:14 PM
Mucho más baja, compañero.

Piensa que la Dreamcast es del 98, mucho menos potente que la Wiz, creo.

Bájatelo y lo pruebas en el emulador. Creo que decente y lo importante es que pueda mover otras cosas y encargarse de la música sin petardeos a la vez.

Tambien siempre podemos recurrir a CDDA, a las malas...
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: KeiDash on November 08, 2017, 11:29:13 PM
Como se puede detener la música OGG en la Dreamcast amigo Ryo?? Cuál es el método?
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Drumpi on November 26, 2017, 01:06:18 AM
En Bennu es:
http://wiki.bennugd.org/index.php?title=Stop_song
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on November 29, 2017, 11:10:47 AM
Mmmm... no me acuerdo. Ahora te lo miro.

Puedes hacer el comando moddesc con el mod_dream y te salen listados todos los comandos que tenemos actualmente para la versión de Dreamcast.

Por lo que recuerdo no se podía parar, no sé si detenía la canción simplemente haciendo ogg close.

Lo confirmo y edito esto y te digo.
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on November 28, 2021, 10:18:31 PM
Chicos, acabo de confirmar un problema con la reproducción de los Ogg.
Con la ultima actualización que libera correctamente la ram me di cuenta de que ahora no reproduce los ogg.
Para verificar esto hice exactamente el mismo programa con la versión que si los reproduce y la nueva que libera la ram... el resultado es que en la vieja lo reproduce y en la nueva no...
Dejo un link con ambas versiones del sample donde en la vieja reproduce ok y en la nueva no...
https://easyupload.io/syom6q


Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: panreyes on November 29, 2021, 10:05:54 AM
En Discord hemos estado comentando que hay algún problema con la carga y descarga de OGGs en mod_sound, pero no sé si afecta a vuestra versión.

Dadle un vistazo por aquí :)
https://bitbucket.org/SplinterGU/bennugd2/commits/
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on November 29, 2021, 12:50:01 PM
Hola panreyes, gracias!
Perdón la ignorancia... no se bien que debería hacer, acá veo un supuesot fix, pero no se bien como sería el paso a paso para implementar esto en windows....
¿Hay algun instructivo o algo?
https://bitbucket.org/SplinterGU/bennugd2/commits/7932608a9394fe698c7fde218d78aa3ae0ea573d
Gracias!
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: SplinterGU on November 29, 2021, 11:42:03 PM
eso es bennugd2, tenes que ir al svn de bennugd1
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: panreyes on November 30, 2021, 09:35:35 AM
Quote from: SplinterGU on November 29, 2021, 11:42:03 PM
eso es bennugd2, tenes que ir al svn de bennugd1
No lo había encontrado, aquí está:
https://sourceforge.net/projects/bennugd/
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on November 30, 2021, 04:34:27 PM
Quote from: Gabysantof on November 28, 2021, 10:18:31 PM
Chicos, acabo de confirmar un problema con la reproducción de los Ogg.
Con la ultima actualización que libera correctamente la ram me di cuenta de que ahora no reproduce los ogg.
Para verificar esto hice exactamente el mismo programa con la versión que si los reproduce y la nueva que libera la ram... el resultado es que en la vieja lo reproduce y en la nueva no...
Dejo un link con ambas versiones del sample donde en la vieja reproduce ok y en la nueva no...
https://easyupload.io/syom6q

Disculpa que no lo había visto.

Es cierto, como el ogg no lo reproducía del todo bien Indiket y yo lo cambiamos.

Esto me parece que no lo comenté por aquí pero nuestro intento fue usar música .opus que en principio es un códec mejor y que funciona bien con otros proyectos que habíamos probado en Dreamcast.

El caso es que tampoco funcionó, sucedía lo mismo que con OGG :(

Así que el problema parece venir de otro lado. No sabemos si es el mixer del port de Dreamcast, o incluso del SDL de Chui que es el que usa "nuestra" versión.

El caso es que hablé con Ian Micheal que él tiene otra versión de BennuGD que no ha hecho pública porque le faltan los controles y alguna cosa más por implementar y sí que le funciona bien la reproducción OGG.

Quizá es porque él usaba otra versión propia del SDL de Dreamcast que partía del de Chui pero en principio lo mejoraba y actualizaba:

https://github.com/ianmicheal/SDL-dreamhal--GLDC

Al grano, que no quiero liarme. La última versión de BennuGD de Indiket tiene el ogg deshabilitado (o quizá reproduce .opus no recuerdo bien)

Hasta que pueda arreglarse de momento se puede programar bien con WAVS para los sonidos y CDDA para la música de fondo.

Puse por aquí un tutorial para añadir pistas de audio (cdda) en el BennuGD de Dreamcast. No es demasiado complicado con el Bootdreams.

P.D. Ahí tenéis mi Dreamcastnoid, tanto el de la DCJAM como el Enhanced Retail edition que funcionan bien así. Encuentro no casual - Prólogo también usa pistas de audio para la música y wavs para SFX.
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on December 02, 2021, 01:57:35 PM
Hola Ryo y a todos!
Antes que nada muchísimas gracias por la ayuda.
Tengo 2 temitas para consultar

1) Estuve siguiendo el tutorial para hacer que la música sea por pistas de audio, hice un pequeño programa de ejemplo.
Algo debo estar haciendo mal. El archivo se genera sin problemas con el bootdreams.
Si monto la imagen generada con una unidad virtual puedo reproducir las canciones! pero no me las está reproduciendo en el "juego" mismo.
Acá dejo el ejemplo donde incluso las canciones que puse son de mi "ex-banda de Rock" que iba a usar de musica para los niveles de mi juego jaja.

2) Por algún motivo, al probar el juego los efectos de audio (wavs) se escuchan por 1 solo canal. Les pasó alguna vez? Yo no había notado esto hasta que probé el juego en el emulador con auriculares. Los Wavs que hice son todos "mono". Estuve comparando con otros proyectos y los wavs tienen el mismo formato pero se escuchan ok por ambos canales del auricular.
Se les ocurre que puede estar pasando?

Dejo el código, mas que nada para el punto 1.
https://easyupload.io/tp45t9

Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: SplinterGU on December 02, 2021, 05:40:30 PM
en el repositorio oficial de bennugd, hay un fix en cuanto a la reproduccion de sonidos... especifacamente en cuanto a musicas... ogg esta afectado...

NOTA: no usar el fix que se hizo para PS VITA, ese fix es parcial y asi como esta, es incorrecto...
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on December 02, 2021, 06:45:53 PM
Hola Splinter.
Gracias! De todos modos no estoy hablando del problema de los .ogg...  seguí el hilo acá generalizando un problema de sonido.
En teoría Ryo no tiene problemas con respecto a la musica en formato "cd de audio". Por eso planteaba esto a ver si estoy haciendo algo mal yo en realidad.
Gracias!
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on December 02, 2021, 07:22:12 PM
Hola.

He probado tu ejemplo en el emulador Demul y se escucha perfecta la música CDDA.

¿No se te oye a ti?

Es fácil. Solo hay usar mod_dream y llamar a la reproducción de las pistas usando el orden correcto y habiendo hecho la imagen bien con el Bootdreams.

Aquí lo tienes, supongo que habrás usado este método para reproducir CDDA:

https://www.segasaturno.com/portal/4-vf19-vt8570.html?start=27

Con el mod_cd de BennuGD también funciona pero no puedes hacer loops en las canciones. Así que usa mod_dream.

Lo otro que comentas. Sí, es algo que se tiene que solucionar. Ahora la Dreamcast solo va por un canal. Los sonidos SFX salen solo por un canal.

Es como si solo hubiera dos canales: el del CDDA que no podemos controlar el volumen ni nada y el canal normal para los Wavs.

Es un bug creo de mikmod que es el mixer que usa la última versión del amigo Indiket.

Espero que pueda solucionarse. Yo de momento para mis juegos no he tenido problema para que suenen los efectos de sonido y la música, aunque sí que sería genial tener más canales disponibles.

Lo ideal quizá sería ponerle ALdc que es nuevo API que usan en el Simulant Engine de Dreamcast y creo que es el mejor. Me parece que podría ser implementado en el port de BennuGD...

¿A qué te refieres que te suenan en mono?
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: SplinterGU on December 03, 2021, 12:22:44 AM
me suena que quizas deberias decirle al sistema que estas usando sonidos mono... y hacer un sound_init()


sound_mode = mode_mono;
sound_int();


no se, no estoy seguro, pero me suena que eso puede ayudar...
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on December 03, 2021, 10:07:06 PM
Ya descubrí que pasaba!!!
En el emulador Demul dentro de "Config" - "Sound" tenía activada la opción de "Disable CDDA". Era solo eso!! jaja.

Ahora... quiero hacer mi aporte!!!
No estamos limitados a usar Demul ya que se puede convertir la imagen mdf/mds a cdi
Esto se puede hacer con el programa DiscJuggler (dejo link al final en una versión portable)

Lo que hay que hacer es:
1) Montar la imagen "mds" generada del Bootdreams en una unidad virtual, por ejemplo usando el "alcohol 52%" o "daemon tools"
2) Solo después de montar la imagen abrimos el software DiscJuggler y ponemos "File" - "New" y seleccionamos "Create Disc Image"
3) Como "Source" seleccionamos la unidad virtual donde tenemos montado el "mds" y como destino le ponemos cualquier ruta que podamos escribir de nuestro disco duro y el nombre de nuestro archivo (será un .cdi)
4) Vamos a la pestaña de "Advanced" y dejamos tildadas las opciones de "RAW read" y "Overburn disc".
5) Finalmente le damos al botón "Start"

Y listo!!, de esta manera vamos a tener generado un .cdi y vamos a poder jugar nuestro juego con el Redream, Flycast o cualquier otro emulador que levanta los CDI!!
Para el próximo DEVKIT quizás podríamos incluir este pequeño instructivo y este software.

http://www.mediafire.com/file/43722044q090k2d/Portable_Padus_DiscJuggler%2528By_tot%2529.rar/file

Volviendo al tema del sonido, No pude solucionar el problema de que los audios ".wav" solo se escuchan por 1 canal. Para ser brutos en la explicación...., quiero decir que si jugamos usando auriculares escucho los sonidos solo en 1 oreja. No así los CDDA que se escucha perfecto por ambos "cascos".

Estuve viendo el código del juego "cowboy bebop" que habían desarrollado y veo que los wavs se reproducen sin drama por ambos "cascos" del auricular. No sé como lo ha logrado.
Intenté usar el sound_mode como comentaron pero no me funcionó.
sound_mode = MODE_MONO;
sound_init();    

Gracias a todos por la ayuda, va quedando  poco por solucionar jeje.

Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Ryo Suzuki on December 13, 2021, 06:17:09 PM
Me haces dudar ahora.

Cowboy Bebop le puedes preguntar a folken pero no recuerdo ahora si lo desarrolló con la versión de BennuGD de Indiket o la anterior (y original) de los Colombians Developers...

Quizá sea del mixer. ¿Has probado que tus wavs sean stereo?

Un saludo.

P.D. Sí. Yo uso el daemon tools para convertir a .cdi cuando es necesario. Va muy bien. Es el estándar por así decirlo en imágenes de disco de Dreamcast.
Title: Re:Sample test de reproducción de OGG en Dreamcast
Post by: Gabysantof on February 02, 2022, 02:03:52 AM
 Hola!! Deje en el hilo de "Proyectos" una demo de mí juego de naves. "Blocks Attack". Aún no puedo solucionar el tema de los wavs pero me gustaría que lo vean y lo prueben. Gracias!!