Sonic Battle (GBA) Renderer Series

Posted on September 24, 2018

(Click image to view the animated version)

Here are the entries in this ongoing series. The articles without a hyperlink are planned but haven’t been released yet.


  1. Intro
  2. Rendering on the GBA (overview)
  3. Small detour: palette shifting
  4. Capabilities and limitations of Sonic Battle’s renderer
  5. The big picture
  6. Camera and tilemaps
  7. Walls
  8. Walls sorting
  9. Inverted walls
  10. 45-degree angle walls
  11. Sprites
  12. Drop shadows
  13. Culling
  14. The Escher Sandwich
  15. Appendix: Oryol framework
  16. Appendix: Notes

You can try the WebAssembly demo.

All the source code (in C++) is contained in this repository.

You can also subscribe to the mailing list to be notified when a new article appears.