PicoDMG Devlog

Not just another Game Boy Emulator

View on GitHub
29 June 2026

Episode 08 - Everything Worked, Until It Didn't

by dodger-one

Everything Worked, Until It Didn’t

Because sometimes the bad ideas come from yourself ;-)

Act 1: the idea

As with many bad ideas, it started with a simple question:

What if the PicoDMG could identify physical cartridges using NFC tags?

A few minutes later, an AliExpress order had already been placed. 🤣🤣🤣

After some searching, I found what looked like the perfect NFC reader: small enough to fit inside the DMG shell and, more importantly, with the antenna located on the opposite side of the PCB. That detail was critical, because my plan was to place the reader as close as physically possible to the cartridge slot.

The idea was simple:

In other words: make the emulator behave as if it were actually reading the cartridge.

So, after the usual cycle of thinking, wiring, coding… and repeating that process many more times, I finally got the first proof of concept working:

For anyone interested in the technical details, the complete implementation can be found in the NFC workflow document.

At this point, everything looked extremely promising.

Act 2: The moment I Almost Cried

After months of soldering, debugging, and rewriting code, there comes a point where you stop believing the project will ever actually work.

This was one of those moments.

I had finally reached the point where everything needed to come together:

I installed the three AA batteries, closed the shell as best as I could, and pressed the power switch.

I think the audio says everything.

That moment of absolute happiness, after months of soldering, debugging, and writing code, is difficult to describe.

For the first time, the PicoDMG stopped feeling like a collection of parts and started feeling like a real console.

Act 3: Reality Strikes Back

Well… apparently not everything was going THAT well. 🤣

Act 3.1: the switch

As it turned out, I had not aligned the original power switch mechanism correctly with the plastic slider of the DMG shell.

As a result, the console was physically incapable of reaching the ON position.

Which, admittedly, is not the ideal behavior for a portable console.

Act 3.2: the microsd

But how exactly is this supposed to work if I forgot to insert the microSD card with the ROMs?

After several minutes of confusion, I eventually discovered the root cause:

I had forgotten to insert the microSD card containing the ROMs.

In my defense, expecting an emulator to emulate games without providing any games was, in retrospect, somewhat optimistic.

Act 3.3: The Epic NFC fail

At this point, everything should have been working.

Except it wasn’t.

The NFC reader simply could not read the tag.

After some investigation, the culprit became obvious:

The antenna was too far away from the NFC tag.

Apparently, electromagnetic fields have very strong opinions about distance.

Act 4: The Great Internal Reorganization

So, the problem was not the software.

The problem was not the NFC reader itself.

The problem was where the hell I had decided to place the NFC reader inside the console.

And what did that realization mean?

Well…

At this point, the project had entered what I like to call the “Dremel phase”.

Which, in my experience, is usually a sign that things have gone horribly wrong.

Stage 1: Before NFC

Before NFC

Stage 2: NFC installed

NFC Installed
NFC Installed Back

🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯 Cabling madness 🤯🤯🤯🤯🤯

Cabling madness

Stage 3: Enters the Dremel

Final position
Dremel art

Act 5: Victory!

After relocating the NFC reader and rebuilding a significant part of the console’s internal layout, the system finally behaved exactly as originally intended.

I could now take a physical cartridge, insert it into the console, and watch the correct game boot automatically.

No menus.

No ROM selection screens.

Just insert the cartridge and play.

Which, honestly, still feels a little bit like magic.

And perhaps that was the whole point of the project from the beginning:

To build something that, for a brief moment, makes your brain forget that there is a microcontroller, an emulator, and several months of debugging hidden inside.

And simply makes you think:

“Yep. That’s a Game Boy.”


tags: rp2350 - st7789 - performance - emulator - technical