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: [http://4.bp.blogspot.com/_26RJWnubh-w/S93tpELAatI/AAAAAAAAAF0/UyTZmezMqz4/ s640/Pantallazo.png]

Y cuando pierdes...

[http://3.bp.blogspot.com/_26RJWnubh-w/S93tsMd3oNI/AAAAAAAAAF8/_mvzivnJBjQ/ s640/lose.png]

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

untagged

[How to] OpenSSL en C/C++ » « Pensando en paralelo