Título: Quemando la VRAM Publicado por: pitpan en 22 de Mayo de 2006, 01:30:38 am Mientras volaba de Menorca a Barcelona (en avión, se entiende) he especulado un poco sobre qué cosas me gustaría que mi MSX hiciera. Y debido a la presurización artificial, la cosa no pintaba nada bien. El caso es que me he entretenido con mis historias cafres de abuso de los accesos a VRAM y he diseñado maldades.
Nada más lelgar al piso, he conseguido copiar 3,5 KB por frame en mi MSX1 a 50 Hz. Esto supone que se pueden pasar por frame al MSX nada más y nada menos que 256x144 pixels en monocromo. Por supuesto, el MSX NO PUEDE HACER NADA MÁS. Por lo tanto, si usamos un frame para proceso y otro para volcado a pantalla, conseguiríamos la friolera de un juego moviendo 256x144 (un 75% de la pantalla) a 25 frames por segundo. Creo que algo más que suficiente para cualquier juego decente... Con estos datos presentes, ahora entiendo por fin cómo conseguía el WEC LEMANS funcionar tan fino. Aunque, en realidad, me parece que el WEC funciona a 50/3=17 frames por segundo (más o menos). Para no ponernos tontos, he hecho las pruebas a 60 Hz, y sólo consigo 3 KB por frame, es decir, 256x128 pixels. Aun así, me parece interesante. Supondrá esto la vuelta de los juegos monocromos? Por mi parte, encantado si se mueven rápido! Título: Re: Quemando la VRAM Publicado por: nerlaska en 22 de Mayo de 2006, 07:17:56 am Eso de juegos monocromos .. y perdona mi ignorancia :-)
Te refieres a que no usa la Color Table? o a que exactamente? Título: Re: Quemando la VRAM Publicado por: Jon_Cortazar en 22 de Mayo de 2006, 08:35:42 am 3KB por frame????? :o.
Una explicación más detallada, please! :god: Título: Re: Quemando la VRAM Publicado por: pitpan en 22 de Mayo de 2006, 12:40:37 pm Secreto sumarial... No, pereza de explicarlo tal cual.
Básicamente, los truquitos son los siguientes: - Desactivar la BIOS en la página 0 y establecer en el punto de entrada del vector de interrupcion un simple RET - Pasarle una ristra de 3,5x1024 OUTIs del tirón (sí, son 7 KB de código ;) ) - Hacer la copia hacia la parte inferior de la pantalla: con ello, aunque haya acabado el V-blank, podemos escribir a la VRAM porque el cañón CRT está atrasado aún respecto a la parte de imagen que estamos enviando a VRAM. Tal cual. El problema es que no me queda CPU más que para actualizar sonido (Caruso) en ese mismo frame. Todo el proceso se tiene que hacer en otro frame. Pero si se consigue así un refresco de 25 Hz, creo que se pueden hacer cosas muy majas. Por cierto, que me puse ayer con el WEC LEMANS y sigo sin entender cómo pudieron programar ese pedazo de juego en un pobre MSX y que se moviera así de bien. Qué pasada! El movimiento es muy suave, y las rutinas de renderización de carretera y obstáculos una auténtica maravilla desde el punto de vista técnico. No creo que llegue tan alto! Título: Re: Quemando la VRAM Publicado por: xenon en 22 de Mayo de 2006, 05:46:45 pm Realmente, la adaptación de WEC LE MANS fue fabulosa y un ejemplo de un port Spectrum - MSX hecho bien y con ganas.
|