@jltursan
increíble que en MSX2 esté tan bien visto el tema de blanquear pantalla para ganar velocidad de GPU.
Yo no lo voy a aplicar, me parece correcto tal como me funciona la última versión.
Por cierto, por una vez, en lugar de ponerme a picar código para guardar los patrones sobrescritos por los objetos, he estado
analizando su efecto ... para acabar descubriendo que "no me sirve para nada"
Veamos, cuando se sale del Inventario, se llama a mi nueva rutina 'ReDrawM' que solamente repinta el área que ocupaba la ventana del menú
de forma que no hay efectos indeseados ...
Solo cuando se cambia de una pantalla a otra se dibujan primero los patrones que la forman y a continuación se pintan los bloques guardados
en el modo aventura, a continuación los Sprites y finalmente los Objetos. Esto hará que *siempre* se vea como se sobrescriben unos pocos
patrones por bloques en modo aventura (si los hay) y los objetos que deben aparecer en la nueva pantalla.
No importa lo que haga, siempre se hace esto en este orden (tal como está en AGD). En todo caso se podría dibujar los Objetos antes que
los Sprites y no tengo claro que esto cambie mucho.
Mirando el fuente buscando puntos en los que paso a doble velocidad (1,78 MHz) he encontrado los siguientes:
- WBloc parte donde se guardan los bloques en la tabla de modo aventura
- Dmsg parte que muestra mensajes de texto
- ayFX_P01 reproducción de sonidos via AY-3-8910 ó compatible
- Pt3_Play reproducción de música via mismo chip
- LoadObj para cargar objetos en pantalla
- DRoom dibujar la pantalla con los patrones necesarios
A mi gusto faltaban unos pocos, así que he añadido
- RBloc que dibuja en pantalla los bloques del modo aventura necesarios
- ReDrawM que redibuja los patrones que estaban detrás de la ventana de inventario
- ShowOb rutina que muestra un objeto dejado por el jugador
Y posiblemente añada LoadSprt que muestra los sprites
Cualquier idea será bien recibida
pere