Nintendo GameBoy

I worked in GBZ80 assembly to learn how to create games on the Nintendo GameBoy. I started this project mainly because I am very much into retro games. For example "The Legend of Zelda"© games. After one year of studying game programming, I decided to take a look at programming for the Nintendo GameBoy, since I wanted to do so for a long time.

Scroll down for more information.

GameBoy items


This is one of the first things I made. It is nothing more than a splash screen and a walking character. However it already required me to look into (meta) sprites, background tiles, animations and joypad input.
Splash Screen design is based on the GameBoy design by Nintendo©

Technical Details

  • Splash Screen
  • Meta Sprites
  • Sprite Animation


After looking into animations and metasprites I decided to downgrade my sprites and see if I could implement collision. I created a simple background so I could implement tile based collision with the background.

The way the collision works is, before the player moves it will store the new position in RAM it will check which tile id is at this position. if the tile id is a tile which should have collision it will cancel the new position, otherwise the new positiion will override the current position.

Technical Details

  • Background Tiles
  • Background Map
  • Sprite-Background Collision

GameBoy Color

An image of a GameBoy color screen

I took the code from the collision shown before and tried to add colors. Adding the colors was not very difficult, however giving specfic tiles a different palette took a bit of research. I found out the GameBoy color has extra VRAM where attributes can be set per tiles. These attributes include mirroring over X and/or Y, palette and priority over sprites. Once I found how to write to this VRAM, it was easy to write the right values for the tiles. This is the result. Keep in mind that there are still only 8 palettes, and each palette can use 4 colors. So, every tile still only uses 4 colors. You can see that also the sprite is colored. There are an additional 8 palettes set aside for sprites.

Technical Details

  • GameBoy Color
  • Background Color Map

Click to close


You can click on any of the above links for my profiles or you can also send an email to