Desarrollar para Gameboy: temas y referencias
Documentos y artículos clasificados de desarrollo y programación para Gameboy
2. Preparar el entorno
2.1. GBTelera: Instalación y Uso
GBTelera
GBTelera es un conjunto mínimo de herramientas para desarrollar cómodamente para Gameboy en ensamblador en Linux. Incluye:
- Ensamblador y linker (RGBDS)
- Emuladores (BGB y Emulicious)
- Editores de tiles, sprites y tilemaps (GBTD y GBMB)
- Gestión preconfigurada de proyectos en consola con Makefile
Requiere tener instalado wine y java.
Índice
·· Uso ··
GBTelera se usa principalmente en el terminal de comandos.
Una vez instalada un configurada, disponemos de estos comandos:
- gbt_mkproject - Crea una carpeta con los archivos de un nuevo proyecto de GBTelera.
- gbt_getDMGBoot - Descarga la BootROM original de Nintendo DMG-1 (dmg_boot.bin) y la copia en la carpeta de emuladores de GBTelera (<gbt_path>/tools/emulators).
- gbt_bgb - Lanza BGB y podemos darle como parámetro el fichero .gb para que lo carge automáticamente. (requiere wine)
- gbt_emulicious - Lanza Emulicious y puede cargar un .gb dado como parámetro. (requiere java)
Crear proyectos GBTelera
En el terminal, en la carpeta donde queramos crear el proyecto, tecleamos:
gbt_mkproject <nombre-de-tu-projecto>
esto creará la carpeta nombre-de-tu-proyecto, con la estructura de subcarpetas y archivos de un proyecto de GBTelera base. Ahora sólo tienes que entrar en la carpeta y teclear:
make
para ensamblar y generar la ROM (game.gb). Con la ROM generada ya puedes lanzar los emuladores para probarla, así:
gbt_bgb game.gb
gbt_emulicious game.gb
si tienes instalado wine y java, estos comandos lanzarán BGB o Emulicious y cargarán la ROM game.gb. Esta ROM no hace nada, por lo que simplemente deberías ver salir el logo de Nintendo y quedarse ahí parado.
Desarrollar con GBTelera
Una vez tienes un proyecto creado, tienes una carpeta con esto:
cfg/
Makefile
src/
El fichero Makefile tiene la configuración básica del proyecto (su nombre y las opciones de ensamblado y linkado); y la carpeta cfg/ incluye los ficheros de configuración completa del proyecto.
Para desarrollar, nos interesa la carpeta src/, que contiene los archivos fuente del proyecto. Inicialmente, estos dos:
header.asm
main.asm
Para proyectos sencillos, podemos editar main.asm y escribir nuestro código debajo de la etiqueta global main::. Recuerda terminar con un bucle infinito o un halt (mejor si lleva di delante) para que el programa quede bloqueado.
El fichero header.asm tiene la información que la BootROM espera encontrar en los primeros 64 bytes (cabecera) de la ROM. Cosas como el nombre del juego, el desarrollador, el logo de Nintendo o qué recursos usa la ROM están ahí.
Si añades nuevos ficheros con extensión .asm en la carpeta src/, serán automáticamente ensamblados y enlazados. La configuración del proyecto está diseñada para hacer esto automáticamente.
·· Instalación ··
Para usar GBTelera hay 2 opciones.
Se recomienda la opción 1, si tienes Linux. Es más cómoda, ocupa muy poco y sólo es una carpeta. Necesitarás wine y java. Para Windows, la opción 2 puede ser más cómoda aunque es mucho más pesada.
GBTelera 0.1 (Github)
Conjunto mínimo de utilidades para programar en ensamblador para Gameboy.
Sólo para Linux.
Se descarga de github a una carpeta y se añade al path (instrucciones en github).
Máquina Virtual (VirtualBox)
Máquina virtual con Linux Manjaro.
Trae preinstalados:
- GBTelera 0.1
- CPCTelera 1.5
- wine, java y compiladores de Rust y C++.
Puede ser usada en cualquier Sistema Operativo, con Virtualbox.
Nota: requiere tener una CPU Intel. Si la CPU es ARM (como en los últimos Mac) hay que hacer ajustes para la virtualización.