.cas con el juego
Saffron Games
viernes 20 de mayo de 2011
domingo 8 de febrero de 2009
Rutinas en ensamblador para usar la CGA
He estado experimentando con un viejo PC que tenía en el garaje, se trata de un 386SX configurado en modo compatibilidad (8Mhz) arrancando en modo CGA.
He usado varias técnicas para dibujar sprites (usando doble buffering y dibujando directamente en memoria) comprobando la pericia que debían tener los programadores de los primeros PC para mover varios sprites sin que se produjera el efecto nieve ni parpadeos.
Como al empezar a hacer pruebas apenas encontre ejemplos comentados quiero mostraros las rutinas que he usado. El programa carga una imagen con codificación RLE, limpia la pantalla y empieza a dibujar un sprite que se mueve con los cursores. Para compilarlo necesitaras el NASM que es software libre (para usar otros ensambladores habra que modificar el código). Esta es la versión que escribe directamente en memoria.
El código no esta bien optimizado y es mejorable pero sirve para entender algunos conceptos de la programación gráfica de los primeros PC. Como por ejemplo como chequear que se está en el tiempo del retroceso vertical:
Descargas: código fuente, ejecutable
NOTA: Pasa salir del programa usa Alt+Tab y cierra la ventana en windows o mejor usa un emulador para ejecutar el binario.
He usado varias técnicas para dibujar sprites (usando doble buffering y dibujando directamente en memoria) comprobando la pericia que debían tener los programadores de los primeros PC para mover varios sprites sin que se produjera el efecto nieve ni parpadeos.
Como al empezar a hacer pruebas apenas encontre ejemplos comentados quiero mostraros las rutinas que he usado. El programa carga una imagen con codificación RLE, limpia la pantalla y empieza a dibujar un sprite que se mueve con los cursores. Para compilarlo necesitaras el NASM que es software libre (para usar otros ensambladores habra que modificar el código). Esta es la versión que escribe directamente en memoria.
El código no esta bien optimizado y es mejorable pero sirve para entender algunos conceptos de la programación gráfica de los primeros PC. Como por ejemplo como chequear que se está en el tiempo del retroceso vertical:
;
; waitVblank : wait to vertical retrace
waitVblank:
mov dx,3DAh
.l1:
in al,dx
and al,08h
jnz .l1
.l2:
in al,dx
and al,08h
jz .l2
ret
Descargas: código fuente, ejecutable
NOTA: Pasa salir del programa usa Alt+Tab y cierra la ventana en windows o mejor usa un emulador para ejecutar el binario.
viernes 30 de enero de 2009
miércoles 14 de enero de 2009
Imágen de marca
lunes 12 de enero de 2009
Imágenes de un programa para PS3
jueves 18 de diciembre de 2008
martes 25 de noviembre de 2008
Suscribirse a:
Entradas (Atom)






