viernes, 20 de mayo de 2011

donkey.bas (MSX)

Port del clásico de Ibm PC para el estándar MSX



.cas con el juego

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:

;
; 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.

miércoles, 14 de enero de 2009

Imágen de marca

No se si esto llegará a buen término algún día pero por si las moscas os presento el logo del "equipo" que está desarrollando el juego.

lunes, 12 de enero de 2009

Imágenes de un programa para PS3

Capturas de una demo que estoy haciendo para Playstation 3 ejecutándose en la nueva consola de Sony.

Una pena que el framerate sea tan corto...



jueves, 18 de diciembre de 2008

martes, 25 de noviembre de 2008