El resultado es bastante cutre, en parte por la limitacion de 510 bytes ( 512- 2 para el numero magico), que es parte del reto, y en parte por la poca destreza del programador (yop), pero funciona, y sirve de practica sobre ensamblador en modo real, asi que cumplio su funcion :)}
Esta completamente escrito en ensamblador de 16 bits (no hay mas opciones, si tiene que funcionar sin un SO y en ese espacio)... aqui teneis el codigo fuente [bgame.asm] (con los comentarios en ingles), o con los comentarios traducidos [bgame_es.asm] , el makefile [Makefile] y la imagen del disquete generado [bgame.img] y todo en un ZIP [bgame.zip]
La idea es utilizar una maquina virtual, como virtual box, y cargar la imagen del disquete.
Es posible que interese cambiar un par de variables (nivel y velocidad del juego), esto se puede hacer en dos los primeros del codigo:
%define glevel 200 ; Nivel del juego (1-255) (1-0xFF)
%define step_speed 0xFF ; Tiempo por cada "tick" del juego (1-65535) (1-0xFFFF)
El "juego" es bastante simple, los disparos propios son " | ", los disparos que vienen de arriba son " ! ", y las explosiones (cuando chocan dos cosas), son " @ ", aunque las colisiones no van muy finas, a veces los disparos explotan por que si... pero es mas que nada estetico.
Las capturas, no pueden faltar en esta ocasion:
Y cuando pierdes...
Y no, no tengo ni idea de que pasara si se mete en un disquete y se bootea (hubo que recortar algo de codigo que hacian comprobaciones necesarias para PC's antiguos)
Por supuesto, aun se pueden hacer algunas mejoras al juego (como eliminar todo el codigo :D)
Hasta la proxima!
[Referencia]
osdev.org
No hay comentarios:
Publicar un comentario