› Foros › Retro y descatalogado › Consolas clásicas
MasterDan escribió:Viendo vuestro conocimiento (sobretodo el de @magno ) lo que yo me pregunto es cuando dejareis de teorizar sobre el tema y pasareis a la práctica. Que el homebrew de la super es casi inexistente y necesita hamor .
magno escribió:Aquí está el código, aunque no completo, de lo que implementó blargg para esa demo de música clásica; si lees lo que comentan, parece que llega a 128KB/seg de muestras sin comprimir BRR, lo cual se parece mucho a los cálculos que te hice si la APU validara los datos en cada ciclo (en mis cálculos salían 2290 bytes/frame * 60 fps = 134KB/seg).
Pero ya te he comentado que es imposible que el SPC-700 los valide en 1 ciclo por culpa de su frecuencia de reloj; lo que hace blargg es cargar el SPC-700 para que valide todos los datos de golpe y así hacer menos ciclos de espera en la SNES. La contrapartida es que no puedes poner efectos en el SPC-700 porque va a tope, incluso su buffer de eco no se actualiza, mientras que la SNES está también apurada casi al 100% enviando los frames de audio.
magno escribió:Otra aproximación al problema es usar el HDMA enviando 4 bytes en cada HBlank, y considerar que el SPC-700 los va a leer sí o sí en el tiempo de 1 scanline. Esto permitiría 224 scanlines * 4 bytes = 896 bytes/frame * 60 fps = 53760 bytes/seg, sin usar apenas la S-CPU a costa de tener menos tasa por segundo y el HDMA parcialmente ocupado (si no se usa para otra cosa, no habría problemas). Lo que pasa es que esto no parece que se haya probado en hardware.
Señor Ventura escribió:Mas que no haberse probado en hardware, lo que he detectado es que muchos juegos hacen pirulas con el scroll si desactivas la emulación del hdma, así que habría que tener cuidado ahí.
Señor Ventura escribió:¿Como va el uso del hdma a través de varios canales?, ¿se puede hacer de forma simultánea? (enviar samples de sonido por un lado, mientras que por otro actualizas la posición de un plano).