domingo, 2 de mayo de 2010

Bgame (un minijuego de 510 bytes)

Bgame es un juego hecho para probar un concepto, meter un juego en el bootsector de un disquete, y que el PC pueda cargar directamente (sin pasar por un SO)

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