Karya Sipahi

Gameplay Programmer

Zelda on the GBA

Zelda was a Project I made for Programming Low Level Architecture. Within this project I programmed my game, ensuring all GBA fuctions were used appropriately and storage space used was minimal, forming a clean and structured VRAM. This project was completed in 2 months. 


  • Math Library/Utilities
  • Bit shifting
  • Rendering Modes
  • Z-Ordering of Sprites
  • Particles Effects
  • Tile Maps
  • Collision Tiles
  • Background Scrolling
  • Interactivity
  • Sprite Animations
  • Optimisation of Particles
  • User Input


As this game was produced for the GameBoy Advance(GBA), a low-level coding structure was required, which also meant it had to be coded in C. Due to the GBA's low storage, memory optimisation had to be considered at all times. This restricted the quality of the sprites to 8bits. During the making of this game, a small bug appeared in which collision between the player and the interactable grass were un-aligned. This was caused due to an incorrect raycast between the player and the grass sprites. To correct this I recalculated the vectors within the raycast, to the correct values. For the player animations, each direction would require alot of memory, therefore this needed to be cut down. To achieve this, I only created one side animation, using a bitwise OR operator to horizontally flip the animation using it's second attribute properties, which store its x position, size and flip mask through the use of bit-shifting.