Dillon Drummond

Game Developer & Software Engineer

GBA Game


Features


Sprite Rendering

Tilemaps

Movement

Collision

Animations

Overview


  This project was for my Computer Architecture course were I learned about assembly and how computers work at a lower level. I decided that I could benefit from creating a Gameboy game from scratch using assembly to get a better understanding of all of the different processes and steps necessary to make a functional game at the lowest level. I chose the Gameboy Advance because the Gameboy Advance SP was my first gaming console and it introduced me to the world of video games. I wanted to pay an homage to it by revisiting the platform as a developer instead of a player this time.

  So far, the game supports movement, background tilesets, an animated player sprite that can face and walk different directions, and collision. I hope to continue with this project to add actual gameplay with enemies, simple combat, and multiple "rooms" to explore for example.

Tools


ARM Assembly

VASM Assembler

Reflection


  Working without a toolset was challenging. The only tool I had was a cross compiler that could create GBA files from ARM assembly. I discovered later in development that the emulator I used to run my project actually offered tools for viewing memory and stepping through frame by frame. While this was not a complete debugging toolset, it helped for the remainder of the project. There were no debugging tools in the editor or functions to draw to the screen to speak of. I had to learn how to draw sprites and tile maps by directly modifying VRAM. I went through several iterations of sprite drawing as I learned about the different capabilities of the various screen modes the Gameboy Advance offers.