Ya he conseguido adaptar el reproductor de ficheros MOD en punto fijo para la Gameboy Advance. Al final me ahorré las divisiones precalculándolas, ya que sólo se realizaban entre un conjunto bastante limitado de números. El reproductor tiene un rendimiento bastante mejorable y aún consume mucha CPU; espero poder optimizarlo lo suficiente como para poder incluirlo en el juego MatchIt y así añadirle música y efectos de sonido al juego.
Por supuesto, ni que decir tiene que todo el código del reproductor es GPL :-). Sección "gameboy advance" del menú de la izquierda.
Ya he optimizado bastante el código del reproductor MOD y ahora tiene un rendimiento bastante cercano a otros reproductores comerciales. El truco: poner un montón de variables "register" y, lo más importante, invertir la profundidad de los bucles en la mezcla. Ahora no recorro el buffer de mezcla tres veces; la primera para inicializarlo, la segunda para mezclar y la tercera para normalizar, sino que lo hago todo en el mismo bucle, metiendo dentro el bucle que recorre cada uno de los canales de sonido.
Aún sigo escuchando algunos chasquidos en el emulador de GBA que tengo en casa, el VisualBoyAdvance, pero también es cierto que incluso con juegos comerciales oigo los mismos chasquidos (mi Athlon a 850MHz está un poco vetusto ya :-). El lunes probaré en el VisualBoyAdvance del ordenata de la oficina, que es un P4 ;-).
Lo sentimos. No se permiten nuevos comentarios después de 90 días.