I would have liked to write a trilogy of Java Pills over the holidays. Too bad it's January. And too bad, above all, that today we won't be talking about Java :D
We'll be talking about C, about the Game Boy Advance (GBA) and about a small application that runs on real hardware from over twenty years ago.
📌 Why develop for the GBA in 2025?
At Christmas 2002 I was unwrapping my first video game: Super Mario Advance 2. The worlds and the "magic" behind that screen struck me like crazy.
Fast forward over twenty years: today I develop software (mostly Java), and during the Christmas holidays – between endless lunches, outings, naps and Stranger Things – I found a bit of time to develop an app for the GBA. Partly out of nostalgia, partly out of technical curiosity.
📌 A real app, on real hardware
The project is simple: a text file reader for the GBA.
- file browser with folders (simulated)
- text viewer
- line-by-line scrolling
- page scrolling with L/R
- ellipsis of long names
It all runs on a real GBA, via EverDrive. Not just in an emulator. The final binary weighs about 85 KB, on a machine with 256 KB of RAM and a 240×160 screen. Just to give an idea of the context.
📌 A different way of programming
Coming from the Java world, the paradigm shift is sharp. Here:
- memory is your responsibility
- every buffer has a precise size
- input isn't a keyboard
- the UI has to be designed carefully
- the constraints are real and non-negotiable
It's a way of programming much closer to the hardware, and decidedly less forgiving.
📌 Open source and hardware that doesn't die
The project is open source. Not as a manifesto, but as a practical choice: open source is one of the reasons platforms and hardware don't really disappear. The work didn't only concern the software: the console was restored starting from the original motherboard.
- hardware made in Japan
- modern aftermarket components
- EverDrive developed in Ukraine
- software written in Italy
- AI as a global accelerator
All perfectly normal, in 2025. The repository is public, browsable and editable – out of curiosity, for study, or just for the urge to tinker!
In the next posts:
- how I used AI to write and refactor this project
- integration with the EverDrive APIs and the real filesystem
📑 Link to the repo: gba-txt-reader
See you at the next pill! ☕