I ported Mac OS X to the Nintendo Wii
https://bryankeller.github.io/2026/04/08/porting-mac-os-x-nintendo-wii.html
I ported Mac OS X to the Nintendo Wii
https://bryankeller.github.io/2026/04/08/porting-mac-os-x-nintendo-wii.html
Before figuring out how to tackle this project, I needed to know whether it would even be possible. According to a 2021 Reddit comment: There is a zero percent chance of this ever happening.
Feeling encouraged, I started with the basics: what hardware is in the Wii, and how does it compare to the hardware used in real Macs from the era.
That used to be my thing: wherever our ops manager declared something was impossible, I’d put my mind to proving her wrong. Even though we both knew she might declare something impossible prematurely to motivate me.
My favorite was “it’s impossible to know which DB is failing from a stack trace”. I created STAIN (stack traces and instance names): a ruby library that would wrap an object in a viral proxy (all returns from all methods are themselves proxies) that would intercept all exceptions and annotate the call stack with the “stain”ed tag.
I've seen more than one half-joke-half-serious chunk of code that would "encode" arbitrary info into stack traces simply by recursively calling `fn_a`, then `fn_s`, `fn_d`, and `fn_f` before continuing with the actual intended call, giving you a stack trace with (effectively) "asdf" in it.
They've also been useful more than once, e.g. you can do that to know what iteration of a loop failed. There are of course other ways to do this, but it's hard to beat "stupid, simple, and works everywhere" when normal options (e.g. logs) stop working.
So much has happened in the tech world because someone wrote at one point, "You can't do that"
My favorite part of our online world.
> Readers with a keen eye might notice some issues:
> - Everything is magenta.
was fun too
I have a project on my desk that started as a response to a line in the Adafruit docs for their RP2040 based MacroPad
It is not possible to add BLE or WiFi at this time to the MacroPad.