Main Menu

Kantaoke

Started by josebita, July 02, 2009, 11:14:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Puede que la tasa de refresco sea la causa de lo que dices, sí. Cambiar el FPS puede ayudar.
Y la librería tiene un límite de un vídeo cada vez, pero sólo porque era lo que me hacía falta para el karaoke, si hace falta más se puede ampliar.
Y respecto a lo otro: haces graph=video_play("video"); (o como sea la función, no me acuerdo) y a todos los efectos es como un gráfico que hayas cargado de un png o un map. Puedes hacer con él todo lo que podrías hacer con el otro: rotar, escalar, espejar...

josebita

#106
Bueno, por lo que he podido ver, el problema con los cuelgues viene de tanto usar file_open en el menú. Algo pasa, pero aún no tengo claro cuál es el problema exacto.

Adjunto una nueva versión del código fuente que, si bien no elimina el problema del todo, mejora el asunto. También incluye un pequeño ecualizador durante las canciones que lee del micrófono ppal.
Es cuestión de reemplazar el código del paquete anterior con el que adjunto y ejecutar el .bat de nuevo. Ya me contareis qué tal.

[Edit] Ojo, que no digo que file_exists tenga un bug, sólo que en el stack dump de los cuelgues, file_open suele ser la última función que se llama.

FreeYourMind

Ok, lo pruebo despues de comer.
Por cierto, me he fijado que todas las musicas que me he descargado son originales, o sea, cantadas, y una musica de karaoke no debe ser cantada, ya que la voz la pones tu :)
Voy a ver si tengo el microfono por aqui, que tampoco lo he probado :)
El ecualizador era algo que no se podia hacer con el sdl_sound, así que da gusto ver la FMODEX in action :)

josebita

Hombre, eso y el soporte de formatos es la razón por la que uso fmod ex :)
Ya digo que aún da problemas en algunas circunstancias, así que habrá que ver qué está ocurriendo.

FreeYourMind

Una cosa, FMODEX no soporta midi ?
Lo digo porque estaria bien que el programa soportará los formatos .kar, que son midis con la letra para los karaokes tradicionales.
Con eso tendriamos muchas mas opciones y musicas mucho menos pesadas.

josebita

#110
Parece que sí lo soporta. Aún así me gustaría tener antes algo que fuera, aunque remotamente, parecido al singstar. Por lo que he visto, el formato kar no es necesariamente un midi puro y puede que hubiera que procesarlo antes, además de que no da información clara sobre tonos... Una movida.

Como ya digo, me voy a centrar primero en soportar algo parecido al singstar.

FreeYourMind

He probado la nueva, el error sigue tal cual. Todavia no he probado los microfonos.
Por cierto me he fijado que me habia creado un fichero llamado 'Songs' a secas fuera de la carpeta, será algo que hacias en Linux ?
Lo he borrado, el juego sigue funcionando y no me ha vuelto a crear este fichero.

josebita

Para el tema de los micros, no debería hacer falta que hicieras nada, sólo abrir una canción.

En cuanto al directorio "Songs", debería venir uno con el enlace que puse y una vez se ejecuta por primera vez el bat ya se puede borrar. Si te crea otro directorio de esos al arrancar, será cosa de que la he cagado con el .bat

josebita

Yo diría que el código que adjunto elimina el problema del crash en el menú ppal. pero agradecería que alguien lo compilara y me contara qué tal (básicamente me he cargado el proceso que pintaba la animación del fondo, que estaba haciendo cosas raras...).

SplinterGU

Quote from: josebita on November 23, 2010, 09:25:32 PM
Yo diría que el código que adjunto elimina el problema del crash en el menú ppal. pero agradecería que alguien lo compilara y me contara qué tal (básicamente me he cargado el proceso que pintaba la animación del fondo, que estaba haciendo cosas raras...).

pensas que puede ser algun bug de bennugd? pudiste analizar algo?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

En algún momento lo he pensado, he probado varias cosas:

He visto que durante algún tiempo me ha estado fallando la función string_comp en core/bgdrtm/src/strings.c, que hace un strcmp en lugar de strncmp y he pensado que podrías tratarse de un buffer overflow.
En algún momento se ha pasado a la función un código de cadena cuya cadena asociada ha resultado ser un NULL y la función rompe.

Se me ha ocurrido que el hecho de que la cadena fuera NULL podría ser causa de mi mod_iconv, pero la verdad es que no me ha parecido que estuviera mal (aunque yo diría que me sobran un par de string_use's, nunca he entendido muy bien cuándo hay que usarlo).

También he visto algún "assertion failed" relacionado con string_add, pero eso también viene de que alguna de las cadenas es un NULL. (¿Hace realmente falta ser tan estricto como para poner un assert ahí?).

Vamos, que se me ha pasado por la cabeza que fuera un bug de Bennu, pero también he visto que la función esa que he quitado estaba haciendo cosas "raras" con los fopen y compañía, así que bien puede ser cosa de mi código Bennu.

FreeYourMind

Cuando pueda lo pruebo.

josebita

Gracias :) Voy a acabar teniendo que reescribir el menú entero a este paso....

SplinterGU

los string_use o string_discard pueden ser parte de ese problema, tambien hacer un string_add con un NULL seguro es un problema, eso no se debe hacer.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

No se debe hacer el string_add con un NULL, claro. pero el "problema" que representa hacerlo se puede mitigar muy facilmente sin más que añadir una comprobación y un strcpy de una cadena "" a la que sea NULL en la función string_add, ¿no?.