Why RGBDS has been breaking backwards compatibility

Published . Total estimated reading time: 34 minutes.


Clickbait title: I Broke Your Code And I'm Not Sorry.

We all hate when something we use, or rely on, breaks. We hate it even more when it’s someone else’s fault. I’m no different!

But then, why have I, as the lead maintainer of RGBDS, been inflicting this pain upon other people for the past four years or so?

I am writing this post in the context of RGBDS, and more widely, Game Boy development; however, the points made should be relevant to a wider audience: anyone designing tools or systems meant to be used by other humans or machines. No programming knowledge should hopefully be required to understand any of these. (Feel free to ask any clarification questions in the comments!)

Executive summary


This post has been split into several sections, to allow reading it piece by piece.

Context

The big deal with RGBDS and its backwards compatibility is likely obvious to any seasoned member of GBDev, but maybe you, dear reader, are not one.

Let’s talk about what backwards compatibility is (in a rather general sense), and why it matters.

Keep reading...

Go back to the top of the page