kusfo79 escribió:kusfo79 escribió:Voy a preguntarle a Leander (el autor de MegaMindtris), el estaba en el equipo el juego de las olimpiadas de Topo para Amiga, a ver si nos saca de dudas!
La respuesta de Leander sobre los scrolles del amiga:
----------------------------------------------------------------------------------
Jordi:
Una preguntilla que seguro que me podrás responder rápido, como va el scroll en amiga? no hay nametables como en las consolas, pero lo hace por hardware de alguna manera, no?
[1:34:10 PM] Leander:
Hola campeón, estaba conduciendo después del curro
No, va por bitmaps
Por hardware solo dumpear por DMA
Y puedes poner offsets a estos bitmap
Por ejemplo usas 2 buffers para screen
Uno con un puntero al hardware indicándole que es el que tiene que visualizar
Actualizas el otro buffer
Y en el vblank intercambias los punteros del buffer anterior al otro
Ahora la el backbuffer es el viewbuffer
Y así sucesivamente
Y cada buffer va por planos
5 planos equivale a 5 bits de el color de la paleta
También puede tener 4 si quieres (16 colores)
[1:38:01 PM] Jordi:
vamos, basicamente como en los scrolls por software de toda la vida el movimiento, no?
[1:42:31 PM] Leander:
Exacto
Eso tiene offsets de desplazamiento
por hardware
Spectrum y derivados no
[1:42:33 PM] Jordi:
pero el amiga si?
o sea, es bitmap, pero tienes los offsets?
[1:55:31 PM] Leander:
Si, puedes poner un offset en cualquier momento del hint como en MD, pero son bitmap, no hace falta dumpear "tiles" desplazados
[2:08:44 PM] Jordi:
vale, y en este caso, puede ser por lo que algunos juegos tienen marcadores grandes, para hacer ese bitmap mas pequeño, no?
[2:10:10 PM] Leander:
no necesariamente
Por ejemplo, el shadow of the beast solo usa 3 planos (8 colores)
Así hay más velocidad
8 colores cambiando de paleta, por eso el scroll es la caña
[2:11:38 PM] Jordi:
Aja, dependiendo de la profundidad que le enchufes, va mejor
[2:11:38 PM] Leander:
El hint de amiga en realidad es un copperlist
No tienes que hacer instrucciones por hint
Sino que va por datas
RegistronumeroX, valor
Mucho más rápido
Programar en amiga es muy porculera
Unread messages
http://eab.abime.net/showthread.php?t=21866eab.abime.net
Understanding the Copper - English Amiga Board
Understanding the Copper Coders. Tutorials
En esos datas pues poner traiciones waits, por ejemplo esperar a los siguientes x scanlines
[2:41:39 PM] Jordi:
Ah, recuerdo que explicaste algo de todo esto
----------------------------------------------------------------------------------------------------------------------
De aquí veo que si que el desplazamiento si que es por hardware,
@sgonzalez tenías razón. Sin embargo, deduzco que como lo que printas en la pantalla es un bitmap y no una imagen generada por una nametable, el ahorrarte un trozo de la pantalla con un marcador grande te ayuda a ahorrarte tiempo de DMA cargando las imagenes.