Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: theNestruo en 17 de Noviembre de 2012, 10:36:38 am



Título: Música en ensamblador
Publicado por: theNestruo en 17 de Noviembre de 2012, 10:36:38 am
Buenas.

Soy consciente de que el tema musical está tratado y retratado en el foro, pero me veo en la necesidad de abrir un hilo nuevo porque estoy completamente perdido.

He empezado a hacer pruebas para meter musiquilla y sonidos en el juego, pero no acabo de ver claro qué opciones tengo. De momento he probado:
  • PT3Player, sacado de la página de SapphiRe. Es aceptablemente pequeño y he conseguido hacerlo funcionar. Lo malo es que no encuentro músicas en PT3 por ningún lao; he probado con un tema que venía en el código fuente de I Need Speed.
  • WYZPlayer: es algo más grande y me ha costado hacer que compilara. Tiré del código fuente de Jumping para conseguir unas tablas de instrumentos (?) que me hacían falta y para ver cómo engancharlo. Pero no llegó a sonar nada; seguro que por mi culpa, que cuando hay interrupciones de por medio todavía voy un poco a ciegas
El caso es que yo todo lo que quiero meter son musiquillas breves de forma puntual, al estilo de Konami's Soccer/Ping Pong/Boxing/Hyper Rally etc. y no sé si con estos players estaré matando moscas a cañonazos (en especial con el WYZPlayer).

¿Qué más opciones tengo? ¿Qué utilizais vosotros? Antaño, ¿también se utilizaban este tipo de herramientas o se hacía de forma más artesanal?

Para los sonidos durante el juego lo que tengo es un buffer de 13 bytes en RAM que modifico según me conviene durante el frame y luego vuelco (mediante WRTPSGs) después del halt y los volcados gráficos.
Como es un juego de coches, en el canal A suena el motor con una frecuencia calculada. Esto lo tengo controlao :)
En los canales B y C tengo los sonidos de los derrapes (que he copiado vilmente del Road Fighter mirando sus valores en el PSG Toy de meisei) y en cada frame voy volcando las frecuencias/volúmenes correspondientes al buffer.
Funcionar funciona, pero me gustaría saber si hay mejores formas de hacerlo. Creo que ayFX y similares están más orientados a reproducir "sonidos al uso" (esto es: con una duración determinada), ¿correcto?

¡Un saludo!


Título: Re: Música en ensamblador
Publicado por: MsxKun en 17 de Noviembre de 2012, 01:21:46 pm

  • PT3Player, sacado de la página de SapphiRe. Es aceptablemente pequeño y he conseguido hacerlo funcionar. Lo malo es que no encuentro músicas en PT3 por ningún lao; he probado con un tema que venía en el código fuente de I Need Speed.

Creo que ayFX y similares están más orientados a reproducir "sonidos al uso" (esto es: con una duración determinada), ¿correcto?


El PT3 va bien. Musicas hay a patadas. Me baje una lista enooooooooooooooooooooooooooooooorme de musicas, de algun sitio de spec...etc... chorricientas de demos, de juegos, de compos... Y siempre encontraras alguien que maneje el Vortex Tracker para hacerlas nuevas. Aqui el Sr. Shiru tiene varias, puedes ir probando: http://shiru.untergrund.net/music.shtml

El AyFX va bien. No tiene mucha historia.

Lo demas no lo he probado.

Saludos


Título: Re: Música en ensamblador
Publicado por: Imanok en 17 de Noviembre de 2012, 04:46:42 pm
Yo también acabo de migrar a PT3 + ayFX precisamente por eso... además de que el tamaño es bastante reducido, siempre será más fácil encontrar a alguien que controle el Vortex Tracker.

Y si las musicas que quieres poner tampoco son demasiado complejas, mejor me lo pones ;)

Por cierto, me encanta que estés haciendo un juego de coches... estoy deseando verlo  :angel:
(es a lo "Hyper Rally" o a lo "Road Fighter"?)


Título: Re: Música en ensamblador
Publicado por: Iggy Rock en 17 de Noviembre de 2012, 04:48:42 pm
Ese TheNestruo,

Como dice MSXKun VT es muy buena solución pero si quieres mas info sobre el WYZplayer aqui te las paso:

Es una buena opción para musica PSG en general y en particular para juegos, de las mas recomendables.
Eso si, tienes que valorar si te es 'rentable' meter algo menos de 1kb entre reproductor y módulos en tu juego
solo para escuchar un jingle inicial. Por otro lado los módulos ocupan muchísimo menos y menos recursos de la CPU.

A la cuestión! Los pasos para que te funcione son los siguientes (con ejemplos para una mejor explicación)

1.- Editar la música. Para ello tienes el tracker de Augusto Ruiz (WYZtracker) para generar todos los archivos
    necesarios en tu código. Aquí (https://sites.google.com/site/augustoruiz/) lo tienes junto con un tutorial detallado:
    Necesita OpenAL para funcionar (si no lo tienes ya viene un enlace y un archivo de instalación)
  
   Si quieres saltarte este paso teniendo musica ya compuesta aqui tienes un módulo (https://sites.google.com/site/wyzplayer/downloads/knightmare.wyz?attredirects=0&d=1) que puedes cargar con el
   tracker.    
  

2.- Generar con el tracker los módulos e instrumentos en el formato reconocible por el reproductor (WYZPlayer)
    pulsando la tecla para exportar. Esto generará 2 archivos:
    
    
    Knightmare.MUS   el módulo
    Knightmare.MUS.ASM   el archivo de instrumentos.
    
    Esto es así porque en un juego suele haber mas de 1 melodía y el archivo de instrumentos se comparte para todas
    ellas
    
    
    
3.- Compilar el resultado. Se necesita:

   A.- El código (https://sites.google.com/site/wyzplayer/downloads/WYZPROPLAY47aMSX.asm?attredirects=0&d=1)del reproductor.   
   B.- Los archivos anteriores generados por el tracker
   C.- Tu propio código para lanzar la música.
   
   En este último caso tengo preparado un minicódigo para AsMSX y gererar una ROM rápidamente y de paso
   ves mas claramente como hacerlo. Aquí (https://sites.google.com/site/wyzplayer/downloads/Prueba_MSX.asm?attredirects=0&d=1) te la adjunto:

   
4.- Escuchar el resultado (https://sites.google.com/site/wyzplayer/downloads/knightmare_prueba.rom?attredirects=0&d=1):
    
Espero que te sirva a ti y a otros de ayuda al menos para saber como funciona y para valorar su uso en tu juego.


Saludos.

PS: Aquí (https://sites.google.com/site/wyzplayer/downloads) tienes mas ejemplos.


Título: Re: Música en ensamblador
Publicado por: theNestruo en 17 de Noviembre de 2012, 08:44:06 pm
¡Gracias a todos!

Y siempre encontraras alguien que maneje el Vortex Tracker para hacerlas nuevas. Aqui el Sr. Shiru tiene varias, puedes ir probando: http://shiru.untergrund.net/music.shtml
Sí, de hecho Wonder (que me hizo las músicas para Pérez the Mouse) no tendría ningún problema :)
Lo que me extrañó fue no encontrar nada; "PT3" no es una cadena de búsqueda muy cómoda para google...
¡Muchas gracias por los ejemplos!

Yo también acabo de migrar a PT3 + ayFX precisamente por eso... además de que el tamaño es bastante reducido, siempre será más fácil encontrar a alguien que controle el Vortex Tracker.
¿Qué es lo que utilizabas antes?

Por cierto, me encanta que estés haciendo un juego de coches... estoy deseando verlo  :angel:
(es a lo "Hyper Rally" o a lo "Road Fighter"?)
Pues ni lo uno ni lo otro ;) Es a lo "World Rally" (Gaelco) o "Carlos Sainz" (Zigurat).
(Y, hablando de todo un poco, "Shuriken" es chulísimo :D )

[WYZplayer] es una buena opción para musica PSG en general y en particular para juegos, de las mas recomendables.
Eso si, tienes que valorar si te es 'rentable' meter algo menos de 1kb entre reproductor y módulos en tu juego solo para escuchar un jingle inicial. Por otro lado los módulos ocupan muchísimo menos y menos recursos de la CPU.
Si el caso es que todo lo que me has pasado lo tenía ya bajado en el disco duro; llevaba un par de días recopilando información y bajándome todo lo posible. Lo que me faltaba era esta explicacion que me has dado, porque con ella ya he conseguido que funcione :)
No sé qué haría diferente la vez anterior, pero esta vez ha sonado a la primera... aunque sólo una nota y luego se ha corrompido todo. He movido mis variables a $C000 (empezaban en $E000) y ya funciona.
El tema es lo que decíamos, que a lo mejor no me sale rentable utlizarlo para unos pocos jingles. Creo que sí, porque acabo de comprobar que efectivamente ocupa bastante menos de lo que yo pensaba :)

Por cierto: quizá convendría dividir el include principal en dos (parte ROM y parte RAM) como está el PT3Player de SapphiRe para poder ubicar la RAM en cualquier sitio, en vez de "declararla" con EQUs, ¿no?


Título: Re: Música en ensamblador
Publicado por: Imanok en 18 de Noviembre de 2012, 12:06:50 pm
¿Qué es lo que utilizabas antes?
Un player del MuSICA que no es público (original de Patriek, modificado por Armando, blablabla...). Pero es lo que te decía... que cuesta encontrar gente que componga en MML.

Citar
Pues ni lo uno ni lo otro ;) Es a lo "World Rally" (Gaelco) o "Carlos Sainz" (Zigurat).
Jajajaja! mira que estuve a punto de ponerlo también!  ;D

Cuenta algo más, cuenta... es algo tipo "Lotus F3", o realmente corres sin rivales en pista como los juegos que has comentado?

Lo vas a presentar al dev?

Citar
(Y, hablando de todo un poco, "Shuriken" es chulísimo :D )
Me alegro de que te guste  :laugh:

Y tú no presentas nada??... el Pérez me gustó mucho ;)


Título: Re: Música en ensamblador
Publicado por: theNestruo en 18 de Noviembre de 2012, 01:22:09 pm
Pero es lo que te decía... que cuesta encontrar gente que componga en MML.
Tenemos que inventar un conversor tracker->MML ;D

Citar
Cuenta algo más, cuenta... es algo tipo "Lotus F3", o realmente corres sin rivales en pista como los juegos que has comentado?
Lo vas a presentar al dev?
Es sin rivales en pista. Pretende ser un "demake" del World Rally; algo así como lo que podría haber sido el Carlos Sainz si se hubiera hecho utilizando debidamente sprites, tabla de nombres y patrones. Y sin marcador barroco, ¡acción a pantalla completa!
Para la MSXDev'12 no voy a llegar :( Anduve falto de tiempo libre en verano; y no es que falten muchas cosas (el 80% de la mecánica del juego está hecha), pero todo lo que falta es muy trabajoso: tengo modificar los tres editores de tramos/escenarios/tiles., hay que diseñar todos los tramos, faltan todas las intros, pantallas entre tramo y tramo, ending...
No pongo pantallazos porque el 90% de los gráficos que tengo ahora mismo son placeholders cutres míos o ripeos sin piedad :(

Citar
Citar
(Y, hablando de todo un poco, "Shuriken" es chulísimo :D )
Me alegro de que te guste  :laugh:
Y tú no presentas nada??... el Pérez me gustó mucho ;)
Gracias por la parte que me toca :D
Sí que me gustaría presentarme, pero es que no tengo tiempo :( Estoy a ver si retomo con fuerza el BASIC... pero para el concurso de Konamito. Por lo que comentaba antes de la falta de tiempo veo que se me echa la fecha encima y no lo acabo. Y no es que falte mucho tampoco para acabarlo, pero al haberlo tenido aparcado tanto tiempo ahora me cuesta mucho centrarme.
No descarto empezar algo sencillo que, si cabe en 10 lineas, pues para el tenlier; y si no, pues para Konamito (por si acaso no llego con el que ya tengo a medias).


Título: Re: Música en ensamblador
Publicado por: Iggy Rock en 19 de Noviembre de 2012, 04:14:25 pm
Citar
Y sin marcador barroco, ¡acción a pantalla completa!

Como debe ser un buen juego para MSX.

Variables... me aclaro mejor así para poder ampliar el número de canales, pero tienes razón, deberían estar definidas en RAM.


Título: Re: Música en ensamblador
Publicado por: theNestruo en 19 de Noviembre de 2012, 07:49:37 pm
Variables... me aclaro mejor así para poder ampliar el número de canales, pero tienes razón, deberían estar definidas en RAM.
Tener las cosas en dos ficheros es un poco rollo a la hora de buscar/renombrar, pero para lo demás creo que es más cómodo.
Si al final uso el WYZPlayer seguramente haré ese cambio. Si lo hago lo subo aquí, ¿ok? :)


Título: Re: Música en ensamblador
Publicado por: Imanok en 22 de Noviembre de 2012, 10:56:02 pm
@theNestruo: Ánimo con ello y a ver si lo terminas pronto... es todo un reto hacer un juego de ese tipo!  ;)


Título: Re: Música en ensamblador
Publicado por: Jon_Cortazar en 23 de Noviembre de 2012, 09:29:50 am
@theNestruo: siempre he querido jugar en MSX a un juego de coches así!!! Mola, ánimo con el proyecto!