Karoshi MSX Community
05 de Julio de 2021, 08:15:59 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2]
  Imprimir  
Autor Tema: Joe Blade (+demo técnica de sprites hardware)  (Leído 9510 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #15 : 18 de Abril de 2007, 03:23:51 pm »

jeje, esa experiencia con el Caverns hace maravillas, ¿verdad?  Wink
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #16 : 18 de Abril de 2007, 03:41:40 pm »

Quia, ahí ni me guardaba el fondo, ni hacía XOR, literalmente me lo cargaba al pasar por encima....como era negro (no pretendía hacer un chiste racista Tongue)
En línea

Doom dee doom dee doom
SapphiRe
Visitante
« Respuesta #17 : 18 de Abril de 2007, 03:43:45 pm »

Permiteme corregir tu cita por una más políticamente correcta:

Quia, ahí ni me guardaba el fondo, ni hacía XOR, literalmente me lo cargaba al pasar por encima...como era de un único color...

En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #18 : 20 de Abril de 2007, 12:04:32 am »

Pues he hecho hoy un poco de optimización para velocidad, y algo sí que ha mejorado el tema, la verdad.

En el original, teníamos que:
Pues al final sí que he hecho algo más... Os dejo una mini-demo técnica a la que le falta mucha optimización: mini-demo malévola.

Moviendo arriba/abajo el cursor cambiaréis el número. Os adelanto los resultados para MSX1 a 50 Hz:

De uno a tres: funciona a 50 Hz
De cuatro a seis: funciona a 25 Hz
De seis a nueve: 12,5 Hz

En cualquier caso, no funciona demasiado bien a partir de 7/8, debido a que no se ha incluido el NOP adicional para los OUTI fuera de V-blank. Además, el código no está optimizado en absoluto, va todo muy a saco. Tongue

Y con la nueva versión, mini-demo v4 malévola, los resultados para MSX1 a 50 Hz:

De uno a cuatro: funciona a 50 FPS
De cuatro a nueve: funciona a 25 FPS
De diez a trece/catorce: funciona a 12,5 FPS

Eso sí, ahora no creo que quede mucho ciclo por rascar Tongue
He hecho cosas muy malévolas, pero creo que algo he aprendido en cuanto a optimización de velocidad Wink
« Última modificación: 20 de Abril de 2007, 12:07:29 am por robsy » En línea
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #19 : 20 de Abril de 2007, 09:52:46 am »

Pues ir a 50fps ya me parece una pasada  Shocked

Vamos a ver, ¿qué resulta más lento, volcar el rectángulo correspondiente al área de juego o una rutina para volcar cada sprite directamente?
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #20 : 20 de Abril de 2007, 11:13:47 am »

La respuesta depende de lo que estés haciendo: será más rápida la rutina que trate menos memoria y vuelque menos datos a VRAM. Ten en cuenta que para dibujar cada personaje hay que hacer un porrón de transferencias: leer máscara negra y pintarla en el fondo, leer sprite blanco y pintarlo en el fondo, copiar el recuadro a la VRAM para que se "vea", copiar el fondo al buffer de trabajo para que el sprite no deje rastro al desplazarse. En cada caso se mueven 128 bytes por paso y personaje, así que hazte cargo. Es un GÜEVO de tráfico!
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #21 : 20 de Abril de 2007, 06:47:25 pm »

Jeje, hay que ver como te lo estás pasando Robsy Grin, está la mar de bien.
Por curiosidad morbosa, quedamos en que no tenías sprites precalculados, ahora mismo todo son rotaciones, ¿verdad?.
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #22 : 21 de Abril de 2007, 09:04:27 am »

Por eso te lo comentaba, no sé si en este caso es mejor escribirlo todo en un buffer y luego volcarlo.
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #23 : 21 de Abril de 2007, 11:05:25 am »

La diferencia entre hacer el volcado de una vez o en varias veces no es mucha, únicamente hay que volver a preparar para escritura al VDP cada bloque. Tal como dice Robsy lo que realmente es incómodo es enviar muchos datos al VDP, si por hacerlo en una sola operación envías, que te diría yo, un 20% de datos innecesarios ya estás perdiendo tiempo seguro.
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« Respuesta #24 : 21 de Abril de 2007, 04:18:39 pm »

Así voy yo ahora, a lo cafre. Que tengo que mandar 3 tercios de pantalla, pues los mando. Que son dos, pues dos  Smiley Imagina qué carnicería  Cheesy Ya pensaré cómo hacerlo más eficiente más adelante, igual vuelco sólo el rectángulo mayor que contenga cambios o algo así.
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #25 : 21 de Abril de 2007, 08:06:54 pm »

Pues después de este ejercicio, creo que el Filmation I es factible a una buena velocidad. Pensemos en los obstáculos como "sprites" fijos que se redibujan en cada frame. Y piensa que no hace falta dibujar de atrás hacia delante TODO. Sólo los obstáculos más cercanos en el sprite en movimiento y el observador. Si me veo con coraje, haré otra mini demo, pero aquí hay que meterle mucha más carga gráfica.  Undecided
En línea
Páginas: 1 [2]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!