I built a Game Boy emulator in F#

A late-night passion project turned into a tiny gaming miracle — and the comments went wild over the language choice

TLDR: One developer spent months building a working Game Boy emulator in F#, turning childhood nostalgia into a serious learning project. The comments loved the effort, roasted AI shortcut culture, and spiraled into a passionate fight over whether F# is underrated genius or doomed to live behind C# forever.

A software engineer decided to finally answer the terrifying adult question — how do computers actually work? — by spending months building a playable Game Boy emulator in F#, a lesser-known programming language with a cult following. The result, called Fame Boy, runs old handheld games with sound on both desktop and web, which is already catnip for nostalgic gamers. But the real popcorn moment came in the comments, where readers treated the project like part love letter, part battlefield.

The loudest reaction was pure admiration: people were thrilled to see someone sink real time and stubbornness into learning, instead of posting another "an AI built this in 10 minutes" victory lap. One commenter basically declared it a win for humanity. Others were delighted just to see F# get a rare moment in the sun, with fans gushing like they’d spotted an indie band suddenly playing a stadium.

Then came the language drama. Some commenters praised the author for picking the "right tool" and even offered nerdy improvement tips, while others launched into a mini identity crisis over F# itself: beloved, elegant, and supposedly forever trapped in the shadow of its flashier cousin, C#. That sparked a spicy little sermon about how people should stop stuffing every idea into C# and just use F# properly already. Meanwhile, one dryly funny reply warned that F# is lovely, but if you use it the "pure" way, speed can vanish fast. In other words: everyone loved the ambition, but the comments turned into a surprisingly juicy therapy session about coding taste, effort, and language loyalty.

Key Points

  • The author built a working Game Boy emulator in F# called Fame Boy after first studying computer fundamentals and creating a CHIP-8 emulator.
  • Fame Boy is designed to run on both desktop and web through a small interface consisting of buffers and core stepping/input functions.
  • The emulator architecture models Game Boy hardware components including the CPU, memory map, IO handling, PPU, APU, timers, and cartridge interactions.
  • A central single-threaded stepper function synchronizes hardware component updates by stepping them in sequence according to CPU and timing cycles.
  • The emulator targets correct runtime speed at roughly 17,500 CPU cycles per 60 FPS frame, using audio rate or frame rate to drive execution depending on sound state.

Hottest takes

"There is some hope for humanity after all" — cermicelli
"forever stuck in C#'s shadow" — redrobein
"my greatest love" — hurril
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.