Karoshi MSX Community
06 de Julio de 2021, 04:30:27 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2 3
  Imprimir  
Autor Tema: Concurso MSX-BASIC 2011 de Konamito  (Leído 13095 veces)
0 Usuarios y 1 Visitante están viendo este tema.
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« : 23 de Septiembre de 2011, 08:19:27 pm »

Bueno, pues aquí me teneis de nuevo dando la chapa... y haciendo autobombo ya de paso Cheesy

Después de recordar el lenguaje de infancia, leer un hilo que hay por aquí acerca de optimizaciones BASIC y de publicar algunos posts preguntando acerca de trucos del VDP, MSX BASIC ROM Creator y todas las cosas nuevas que desconocía, estoy orgulloso de anunciaros que casi casi casi tengo listo un juego en BASIC (estamos a falta de meter las músicas y sonidos).

Podeis ver anunciada "mi gran obra" (ejem) aquí: http://www.konamito.com/concurso-msx-basic-2011-anunciado-perez-the-mouse/

Lamentablemente, por lo que leo en los comentarios, varios de los participantes del año pasado este año no saben si llegarán a tiempo... Sad
Aunque sé que aquí sois mayoritariamente ASeMbleros, ¿alguno vais a participar?

P.D.: Sabed que el PLAY tiene un lado oscuro ¿¡qué es eso de que no se distingan las corcheas de las negras en cuanto le pones un tempo rápido!? ¿qué es eso de que se descordinen los canales cuando pongo tempos "raros" como 140 o 160?
A todo esto, ¿existe documentación acerca de cómo compila y reproduce PLAY la música? Estuve pensando en hacer PEEKs de la cola de reproducción, llevármela a otro lado y luego cambiar el puntero (con la idea de hacer un PLAY2BIN o algo así) pero no encontré nada claro al respecto de QUETAB, VOICAQ, VOICBQ, etc...
Esto último lo pregunto por curiosidad, ya he descartado completamente esa idea.

Un saludo!
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
SapphiRe_MSX
Visitante
« Respuesta #1 : 24 de Septiembre de 2011, 12:24:45 pm »

Aunque sé que aquí sois mayoritariamente ASeMbleros, ¿alguno vais a participar?

Ojalá tuviera tiempo...

Citar
P.D.: Sabed que el PLAY tiene un lado oscuro ¿¡qué es eso de que no se distingan las corcheas de las negras en cuanto le pones un tempo rápido!? ¿qué es eso de que se descordinen los canales cuando pongo tempos "raros" como 140 o 160?

Nota mental, para el próximo concurso de BASIC añadir soporte para módulos PT3. ¿Qué os parece la idea?
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #2 : 24 de Septiembre de 2011, 12:41:22 pm »

Aunque sé que aquí sois mayoritariamente ASeMbleros, ¿alguno vais a participar?

Ojalá tuviera tiempo...

Citar
P.D.: Sabed que el PLAY tiene un lado oscuro ¿¡qué es eso de que no se distingan las corcheas de las negras en cuanto le pones un tempo rápido!? ¿qué es eso de que se descordinen los canales cuando pongo tempos "raros" como 140 o 160?

Nota mental, para el próximo concurso de BASIC añadir soporte para módulos PT3. ¿Qué os parece la idea?


Pues malamente Tongue por que si ya no tengo músico para un triste play imagínate para PT3 Sad menos puntos aun pal menda.

En línea
Iggy Rock
Visitante
« Respuesta #3 : 24 de Septiembre de 2011, 03:57:33 pm »


P.D.: Sabed que el PLAY tiene un lado oscuro ¿¡qué es eso de que no se distingan las corcheas de las negras en cuanto le pones un tempo rápido!? ¿qué es eso de que se descordinen los canales cuando pongo tempos "raros" como 140 o 160?
A todo esto, ¿existe documentación acerca de cómo compila y reproduce PLAY la música? Estuve pensando en hacer PEEKs de la cola de reproducción, llevármela a otro lado y luego cambiar el puntero (con la idea de hacer un PLAY2BIN o algo así) pero no encontré nada claro al respecto de QUETAB, VOICAQ, VOICBQ, etc...
Esto último lo pregunto por curiosidad, ya he descartado completamente esa idea.

Un saludo!

Recuerdo una MSXClub en la que se explicaba el control desde el CM de los bufferes del Play... no se me viene a la mente qué número era (quizás el de la portade del Metal Gear?). La idea es muy buena, de hecho el BIOS te ayuda a hacerlo y ese documento incluía algúnos ejemplos sencillos.
En línea
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #4 : 24 de Septiembre de 2011, 04:18:38 pm »

Pues malamente Tongue por que si ya no tengo músico para un triste play imagínate para PT3 Sad menos puntos aun pal menda.
Yo menos mal que tengo a un amigo que compone (y que además se está currando él mismo un conversor para mandarme las cosas directamente PLAYables)... si no, me tocaría tirar de partituras de música clásica o de libros de partituras de canciones ultraconocidas. Aunque no sé qué tal quedaría el "Clavelitos" en un juego... xDDD casi habría que pensar al revés: ¿se puede hacer un juego que trate de Clavelitos? xDDD

Recuerdo una MSXClub en la que se explicaba el control desde el CM de los bufferes del Play... no se me viene a la mente qué número era (quizás el de la portade del Metal Gear?). La idea es muy buena, de hecho el BIOS te ayuda a hacerlo y ese documento incluía algúnos ejemplos sencillos.
Pues este finde he venido a casa de mis padres a buscar las revistas del MSX para algunos listados musicales (y para robar Wifi Cheesy)... y la que comentas creo que la tengo. ¡A ver si hay suerte!
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #5 : 24 de Septiembre de 2011, 10:00:43 pm »

Recuerdo una MSXClub en la que se explicaba el control desde el CM de los bufferes del Play... no se me viene a la mente qué número era (quizás el de la portade del Metal Gear?). La idea es muy buena, de hecho el BIOS te ayuda a hacerlo y ese documento incluía algúnos ejemplos sencillos.
Pues este finde he venido a casa de mis padres a buscar las revistas del MSX para algunos listados musicales (y para robar Wifi Cheesy)... y la que comentas creo que la tengo. ¡A ver si hay suerte!
[/quote]
Bueno, pues no tengo ese número...

...pero he encontrado los scans de todos los números en internet y efectivamente viene un artículo para hacer (en ensamblador) precisamente eso que comentaba yo. A ver si experimento y ya os contaré mis resultados ^_^

P.D.: Me acabas de dejar impactado con tu memoria, has fallado por ¡un único número! El artículo viene en la 53 y la portada del Metal Gear es la 54. ¡Impresionante! Cheesy
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
Iggy Rock
Visitante
« Respuesta #6 : 26 de Septiembre de 2011, 05:57:58 pm »

Ya nos contarás! Hice las pruebas en su día, tras comprar la revista y era bastante útil. Pero el hecho de fallar por un solo número... díselo a un banquero o a los de correos XDDD.
En línea
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #7 : 27 de Septiembre de 2011, 09:43:57 am »

P.D.: Sabed que el PLAY tiene un lado oscuro ¿¡qué es eso de que no se distingan las corcheas de las negras en cuanto le pones un tempo rápido!? ¿qué es eso de que se descordinen los canales cuando pongo tempos "raros" como 140 o 160?

Esto es un problema no del BASIC, sino de la musica cuando se toca por interrupciones. Si tu defines una negra como el tiempo de 11 interrupciones, ¿entonces la corchea que será, 5,5 interrupciones o 6 interrupciones?, en ambos casos se producira un descuadre que sera mayor en cuanto avance la canción.

Este mismo problema le paso el otro dia a Maki en mi casa con el driver de micro cabbin, y la unica manera de solucionarlo es pensar cual sera la minima nota que vas a tocar y en funcion de eso calcular el tempo.  Es decir si vas a tocar semicorchea el tiempo tiene que ser tal que el numero de interrupciones de la negra sea divisible por 4. Nosotros solucionamos eso el otro dia usando un tempo de 144 en lugar de 140 (creo que estos son los valores exactos que tuvimos que usar), aunque por supuesto eso depende de cada driver y/o de la frecuencia a la que vaya el ordenador (50/60 Hz).

El driver de microcabbin lo que hace para esto es decir que cada interrupción vale como 4 unidades de tiempo,  y en cada interrupción  se consumen 4 unidades, pero permite por ejemplo decir que una interrupción tiene por ejemplo 6 unidades, con lo que se conseguiria algo como:

- Interrupción 1: consume 4 unidades, quedan 2 para la siguiente.
- Interrupción 2: consume 8 unidades (las dos de antes + las cuatro suyas)
- Interrupción 3: consume 4 unidades, quedan 2 para la siguiente.
- Interrupción 4: consume 8 unidades (las dos de antes + las cuatro suyas)


por lo que en 4 interrupciones ha tocado 6 notas diferentes, o dicho de otra manera en cada interrupción toca 1'5 unidades de tiempo. Por supesto que esto es una aproximación, pero evita el problema de la desincronización de tiempo debido al truncamiento de decimales.




En línea
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #8 : 28 de Septiembre de 2011, 09:25:03 pm »

Ya nos contarás! Hice las pruebas en su día, tras comprar la revista y era bastante útil. Pero el hecho de fallar por un solo número... díselo a un banquero o a los de correos XDDD.

Bueno, pues al final ha sido una pequeña decepción porque no era exactamente lo que yo quería. Mi idea era copiar el buffer de música a otros lugares, luego guardar todas las músicas en un .BIN y, a la hora de reproducirlas, que las tablas de los canales apuntaran a mis posiciones de memoria y de ahí leyeran toda la música del tirón, sin la pausa de la compilación del PLAY.
Pero lo que hace el artículo es, con una rutina de código máquina, ir pasando de la posición de memoria donde tiene él guardadas las canciones al búfer que mantiene en su posición, e ir haciendo el volcado según le toca mediante interrupciones.
Esto a mí no me interesa mucho, porque si consiguiera hacerlo en BASIC... realmente no tendría ninguna ventaja ya sobre el PLAY. Y si lo hiciera en ensambladro no me valdría para el concurso... y además, ya metidos a utilizar ensamblador, me tiraría a por cosas más modernas, comentadas y documentadas como PT3 o similares.

Para lo que me ha valido el artículo es para echarle un vistazo a los búferes y verificar empíricamente con qué tempos las notas dejaban de tener longitudes múltiplo, para así evitar la dessincronización. Era por lo que dice k0ga, pero en la práctica los ticks que asigna son diferentes a los que calculaba yo en teoría... y de ahí que no fuera capaz de acertar con un valor que me funcionara.

¡Muchas gracias, Iggy Rock y k0ga!
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
theNestruo
Karoshi Lover
***
Mensajes: 236


Email
« Respuesta #9 : 27 de Octubre de 2011, 08:32:43 pm »

¡Buenas! Aquí estoy de nuevo, orgulloso de presentaros mi jueguecillo en MSX-BASIC:


No tocaba el BASIC desde... el colegio :S. Algunas cosas las tenía completamente oxidadas y otras directamente ni las conocía (lo de manejar la tabla de nombres en SCREEN2 y encima poder usar PRINT... ¡eso es la caña!). En definitiva, que esto no hubiera sido posible sin la información que he encontrado, principalmente, en este foro ni sin la ayuda que me habeis proporcionado. ¡Muchas gracias a todos!

Espero que os guste, ¡ya me contareis!
En línea

theNestruo."Old BASIC programmers never die; they GOSUB but never RETURN."
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #10 : 27 de Octubre de 2011, 10:46:08 pm »

Otra cosa mas a probar este finde Cheesy Parece que estare ocupadillo...
En línea

--

Cindy Lauper She Bops!
ryback
Karoshi Maniac
****
Mensajes: 315



WWW Email
« Respuesta #11 : 27 de Octubre de 2011, 11:04:27 pm »

Pues para no tocar el Basic desde el colegio veo que te has apañado muy bien, es más, me parece que has hecho un juegazo, felicidades!  Wink
En línea

Ya no tengo balas, pero sabes... te pudieron haber evitado mucho dolor (Steven Seagal).
KNM
Karoshi Hero
*****
Mensajes: 755

Fearless

jbosca@hotmail.com
Email
« Respuesta #12 : 28 de Octubre de 2011, 12:06:14 pm »

Yo me apunto a la propuesta de SapphiRe para lo de poder meter PT3 en juecs en BASIC.

Y si alguien quiere que le adapte alguna musiqueta en dicho formato, que me de un toque. Asin de paso, voy recuperando un poco de forma con el Vortex ( y a ver si así aprendo de una puñetera vez a hacer las cosas bien )

Saludancias :

KNM
En línea

<Bacterion> : ¿ Por qué la gente se empeña en pulsar F5 ?
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #13 : 30 de Octubre de 2011, 08:28:13 pm »

Está muy bien el juego y técnicamente muy bien resuelto. De hecho, es de lo mejorcito que he visto en BASIC en mucho tiempo... Congratulations para el tandem Nestruo/Wonder (si es que lo he escrito bien, claro).
En línea
KNM
Karoshi Hero
*****
Mensajes: 755

Fearless

jbosca@hotmail.com
Email
« Respuesta #14 : 30 de Octubre de 2011, 08:37:14 pm »

¡¡ Jodo, el juego está pero que muy muy bien !!  Shocked

Y el rollo tan chulo que tienen los buenos juegos forjados con el BASIC. ¡¡ Excelente trabajo, y que cunda el ejemplo !! Cheesy

KNM
En línea

<Bacterion> : ¿ Por qué la gente se empeña en pulsar F5 ?
Páginas: [1] 2 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!